Skip to content

Commit

Permalink
Bugfix/drag window (#1108)
Browse files Browse the repository at this point in the history
Call .drag_window() only after Left mouse btn clicked

Co-authored-by: Emil Ernerfeldt <[email protected]>
  • Loading branch information
a-liashenko and emilk authored Jan 26, 2022
1 parent 26be0ac commit 0d00185
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@ NOTE: [`epaint`](epaint/CHANGELOG.md), [`eframe`](eframe/CHANGELOG.md), [`egui_w
### Fixed 🐛
* Context menu now respects the theme ([#1043](https://github.com/emilk/egui/pull/1043))
* Plot `Orientation` was not public, although fields using this type were ([#1130](https://github.com/emilk/egui/pull/1130))
* Fixed `enable_drag` for Windows ([#1108](https://github.com/emilk/egui/pull/1108)).

### Contributors 🙏
* [danielkeller](https://github.com/danielkeller): [#1050](https://github.com/emilk/egui/pull/1050).
* [juancampa](https://github.com/juancampa): [#1147](https://github.com/emilk/egui/pull/1147).
* [AlexxxRu](https://github.com/alexxxru): [#1108](https://github.com/emilk/egui/pull/1108).


## 0.16.1 - 2021-12-31 - Add back `CtxRef::begin_frame,end_frame`
Expand Down
1 change: 1 addition & 0 deletions egui-winit/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ All notable changes to the `egui-winit` integration will be noted in this file.
* Replaced `std::time::Instant` with `instant::Instant` for WebAssembly compatability ([#1023](https://github.com/emilk/egui/pull/1023))
* Shift-scroll will now result in horizontal scrolling on all platforms ([#1136](https://github.com/emilk/egui/pull/1136)).
* Require knowledge about max texture side (e.g. `GL_MAX_TEXTURE_SIZE`)) ([#1154](https://github.com/emilk/egui/pull/1154)).
* Fixed `enable_drag` for Windows. Now called only once just after left click ([#1108](https://github.com/emilk/egui/pull/1108)).


## 0.16.0 - 2021-12-29
Expand Down
22 changes: 16 additions & 6 deletions egui-winit/src/epi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ pub struct EpiIntegration {
pub app: Box<dyn epi::App>,
/// When set, it is time to quit
quit: bool,
can_drag_window: bool,
}

impl EpiIntegration {
Expand Down Expand Up @@ -227,6 +228,7 @@ impl EpiIntegration {
egui_winit: crate::State::new(max_texture_side, window),
app,
quit: false,
can_drag_window: false,
};

slf.setup(window);
Expand Down Expand Up @@ -264,11 +266,17 @@ impl EpiIntegration {
}

pub fn on_event(&mut self, event: &winit::event::WindowEvent<'_>) {
use winit::event::WindowEvent;
if *event == WindowEvent::CloseRequested {
self.quit = self.app.on_exit_event();
} else if *event == WindowEvent::Destroyed {
self.quit = true;
use winit::event::{ElementState, MouseButton, WindowEvent};

match event {
WindowEvent::CloseRequested => self.quit = self.app.on_exit_event(),
WindowEvent::Destroyed => self.quit = true,
WindowEvent::MouseInput {
button: MouseButton::Left,
state: ElementState::Pressed,
..
} => self.can_drag_window = true,
_ => {}
}

self.egui_winit.on_event(&self.egui_ctx, event);
Expand All @@ -291,7 +299,9 @@ impl EpiIntegration {
.egui_winit
.handle_output(window, &self.egui_ctx, egui_output);

let app_output = self.frame.take_app_output();
let mut app_output = self.frame.take_app_output();
app_output.drag_window &= self.can_drag_window; // Necessary on Windows; see https://github.com/emilk/egui/pull/1108
self.can_drag_window = false;

if app_output.quit {
self.quit = self.app.on_exit_event();
Expand Down

0 comments on commit 0d00185

Please sign in to comment.