mirror of
https://github.com/swaywm/sway.git
synced 2024-12-28 16:06:37 +01:00
Merge pull request #56 from taiyu-len/master
fixed handling of views with override_redirect (dmenu)
This commit is contained in:
commit
3b1bc2c11e
1 changed files with 8 additions and 2 deletions
|
@ -13,6 +13,8 @@
|
|||
#include "container.h"
|
||||
|
||||
static struct wlc_origin mouse_origin;
|
||||
//Keyboard input is being overrided by window (dmenu)
|
||||
static bool override_redirect = false;
|
||||
|
||||
static bool pointer_test(swayc_t *view, void *_origin) {
|
||||
const struct wlc_origin *origin = _origin;
|
||||
|
@ -36,7 +38,7 @@ swayc_t *focus_pointer(void) {
|
|||
if (pointer && focused != pointer) {
|
||||
unfocus_all(&root_container);
|
||||
focus_view(pointer);
|
||||
} else if (!focused){
|
||||
} else if (!focused) {
|
||||
focus_view(active_workspace);
|
||||
}
|
||||
focused = pointer;
|
||||
|
@ -98,6 +100,7 @@ static bool handle_view_created(wlc_handle handle) {
|
|||
}
|
||||
// For things like Dmenu
|
||||
if (type & WLC_BIT_OVERRIDE_REDIRECT) {
|
||||
override_redirect = true;
|
||||
wlc_view_focus(handle);
|
||||
}
|
||||
|
||||
|
@ -140,8 +143,8 @@ static void handle_view_destroyed(wlc_handle handle) {
|
|||
}
|
||||
|
||||
if (type & WLC_BIT_OVERRIDE_REDIRECT) {
|
||||
override_redirect = false;
|
||||
focus_view(focus_pointer());
|
||||
arrange_windows(active_workspace, -1, -1);
|
||||
return;
|
||||
}
|
||||
if (type & WLC_BIT_POPUP) {
|
||||
|
@ -221,6 +224,9 @@ static void handle_view_state_request(wlc_handle view, enum wlc_view_state_bit s
|
|||
static bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifiers
|
||||
*modifiers, uint32_t key, uint32_t sym, enum wlc_key_state state) {
|
||||
enum { QSIZE = 32 };
|
||||
if (override_redirect) {
|
||||
return false;
|
||||
}
|
||||
static uint8_t head = 0;
|
||||
static uint32_t array[QSIZE];
|
||||
bool cmd_success = false;
|
||||
|
|
Loading…
Reference in a new issue