fix: drag file in x11 app fail
update readme
This commit is contained in:
@@ -86,7 +86,6 @@ cp wallpaper ~/.config/maomao/ -r
|
|||||||
the config file is `~/.config/maomao/config.conf`
|
the config file is `~/.config/maomao/config.conf`
|
||||||
the autostart file is `~/.config/maomao/autostart.sh`
|
the autostart file is `~/.config/maomao/autostart.sh`
|
||||||
|
|
||||||
# Due to the project is in preliminary development stage, there may be some crash bug, if you have encountered collapse is unusual, please open the issue, and provide the `~/.config/maomao/crash.log`.
|
|
||||||
|
|
||||||
# thanks for some refer repo
|
# thanks for some refer repo
|
||||||
- https://github.com/dqrk0jeste/owl - for basal window animaition
|
- https://github.com/dqrk0jeste/owl - for basal window animaition
|
||||||
|
|||||||
16
maomao.c
16
maomao.c
@@ -1603,6 +1603,10 @@ buttonpress(struct wl_listener *listener, void *data) {
|
|||||||
const MouseBinding *b;
|
const MouseBinding *b;
|
||||||
struct wlr_surface *surface;
|
struct wlr_surface *surface;
|
||||||
|
|
||||||
|
struct wlr_surface *old_pointer_focus_surface =
|
||||||
|
seat->pointer_state.focused_surface;
|
||||||
|
|
||||||
|
|
||||||
wlr_idle_notifier_v1_notify_activity(idle_notifier, seat);
|
wlr_idle_notifier_v1_notify_activity(idle_notifier, seat);
|
||||||
|
|
||||||
switch (event->state) {
|
switch (event->state) {
|
||||||
@@ -1617,7 +1621,7 @@ buttonpress(struct wl_listener *listener, void *data) {
|
|||||||
if (c && (!client_is_unmanaged(c) || client_wants_focus(c)))
|
if (c && (!client_is_unmanaged(c) || client_wants_focus(c)))
|
||||||
focusclient(c, 1);
|
focusclient(c, 1);
|
||||||
|
|
||||||
if (!surface)
|
if (surface != old_pointer_focus_surface)
|
||||||
wlr_seat_pointer_notify_clear_focus(seat);
|
wlr_seat_pointer_notify_clear_focus(seat);
|
||||||
|
|
||||||
keyboard = wlr_seat_get_keyboard(seat);
|
keyboard = wlr_seat_get_keyboard(seat);
|
||||||
@@ -2644,8 +2648,6 @@ void dwl_ipc_output_release(struct wl_client *client,
|
|||||||
void focusclient(Client *c, int lift) {
|
void focusclient(Client *c, int lift) {
|
||||||
struct wlr_surface *old_keyboard_focus_surface =
|
struct wlr_surface *old_keyboard_focus_surface =
|
||||||
seat->keyboard_state.focused_surface;
|
seat->keyboard_state.focused_surface;
|
||||||
struct wlr_surface *old_pointer_focus_surface =
|
|
||||||
seat->pointer_state.focused_surface;
|
|
||||||
|
|
||||||
if (locked)
|
if (locked)
|
||||||
return;
|
return;
|
||||||
@@ -2660,13 +2662,9 @@ void focusclient(Client *c, int lift) {
|
|||||||
if (c && lift)
|
if (c && lift)
|
||||||
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层
|
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层
|
||||||
|
|
||||||
if (c && client_surface(c) == old_keyboard_focus_surface &&
|
if (c && client_surface(c) == old_keyboard_focus_surface)
|
||||||
client_surface(c) == old_pointer_focus_surface)
|
|
||||||
return;
|
return;
|
||||||
else {
|
|
||||||
wlr_seat_pointer_notify_clear_focus(seat);
|
|
||||||
wlr_seat_keyboard_notify_clear_focus(seat);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c && c->mon && c->mon != selmon) {
|
if (c && c->mon && c->mon != selmon) {
|
||||||
selmon = c->mon;
|
selmon = c->mon;
|
||||||
|
|||||||
Reference in New Issue
Block a user