wok-6.x annotate pcmanfm/stuff/fix_desktop_menus.patch @ rev 22042
gcc83-lib-base: do NOT provide gcc-lib-base
Currently BOTH gcc-lib-base and gcc83-lib-base are installed on my SliTaz system. So, with the current (and longstanding) tazpkg limitations I can't update just gcc-lib-base: tazpkg always updates gcc83-lib-base for me instead. Now I can't run Firefox, Vivaldi, Chrome, etc. I think because of gcc-lib-base, but I not sure 1bsolutely.
Currently BOTH gcc-lib-base and gcc83-lib-base are installed on my SliTaz system. So, with the current (and longstanding) tazpkg limitations I can't update just gcc-lib-base: tazpkg always updates gcc83-lib-base for me instead. Now I can't run Firefox, Vivaldi, Chrome, etc. I think because of gcc-lib-base, but I not sure 1bsolutely.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue Oct 22 12:55:54 2019 +0300 (2019-10-22) |
parents | |
children |
rev | line source |
---|---|
psychomaniak@18756 | 1 Commit: http://git.lxde.org/gitweb/?p=lxde/pcmanfm.git;a=commit;h=ae7ed3af651041a5538634ac9e35dc479e280ad9 |
psychomaniak@18756 | 2 We revert it to fix desktop Openbox menus: Cannot open Right-click and Middle-Click menu in same time. |
psychomaniak@18756 | 3 --- a/src/desktop.c |
psychomaniak@18756 | 4 +++ b/src/desktop.c |
psychomaniak@18756 | 5 @@ -3314,9 +3314,12 @@ static gboolean on_button_press(GtkWidget* w, GdkEventButton* evt) |
psychomaniak@18756 | 6 |
psychomaniak@18756 | 7 if(evt->type == GDK_BUTTON_PRESS) |
psychomaniak@18756 | 8 { |
psychomaniak@18756 | 9 + /* ignore another buttons while some is in progress */ |
psychomaniak@18756 | 10 + if (self->button_pressed == 0) |
psychomaniak@18756 | 11 + self->button_pressed = evt->button; |
psychomaniak@18756 | 12 if(evt->button == 1) /* left button */ |
psychomaniak@18756 | 13 { |
psychomaniak@18756 | 14 - self->button_pressed = TRUE; /* store button state for drag & drop */ |
psychomaniak@18756 | 15 + /* store button state for drag & drop */ |
psychomaniak@18756 | 16 self->drag_start_x = evt->x; |
psychomaniak@18756 | 17 self->drag_start_y = evt->y; |
psychomaniak@18756 | 18 } |
psychomaniak@18756 | 19 @@ -3411,8 +3414,11 @@ static gboolean on_button_press(GtkWidget* w, GdkEventButton* evt) |
psychomaniak@18756 | 20 gtk_tree_path_free(tp); |
psychomaniak@18756 | 21 } |
psychomaniak@18756 | 22 /* forward the event to root window */ |
psychomaniak@18756 | 23 - else if(evt->button != 1) |
psychomaniak@18756 | 24 + else if(evt->button != 1 && evt->button == self->button_pressed) |
psychomaniak@18756 | 25 + { |
psychomaniak@18756 | 26 + self->forward_pending = TRUE; |
psychomaniak@18756 | 27 forward_event_to_rootwin(gtk_widget_get_screen(w), (GdkEvent*)evt); |
psychomaniak@18756 | 28 + } |
psychomaniak@18756 | 29 |
psychomaniak@18756 | 30 if(! gtk_widget_has_focus(w)) |
psychomaniak@18756 | 31 { |
psychomaniak@18756 | 32 @@ -3425,10 +3431,6 @@ static gboolean on_button_press(GtkWidget* w, GdkEventButton* evt) |
psychomaniak@18756 | 33 static gboolean on_button_release(GtkWidget* w, GdkEventButton* evt) |
psychomaniak@18756 | 34 { |
psychomaniak@18756 | 35 FmDesktop* self = (FmDesktop*)w; |
psychomaniak@18756 | 36 - GtkTreeIter it; |
psychomaniak@18756 | 37 - FmDesktopItem* clicked_item = hit_test(self, &it, evt->x, evt->y); |
psychomaniak@18756 | 38 - |
psychomaniak@18756 | 39 - self->button_pressed = FALSE; |
psychomaniak@18756 | 40 |
psychomaniak@18756 | 41 if(self->rubber_bending) |
psychomaniak@18756 | 42 { |
psychomaniak@18756 | 43 @@ -3442,17 +3444,21 @@ static gboolean on_button_release(GtkWidget* w, GdkEventButton* evt) |
psychomaniak@18756 | 44 } |
psychomaniak@18756 | 45 else if(fm_config->single_click && evt->button == 1) |
psychomaniak@18756 | 46 { |
psychomaniak@18756 | 47 + GtkTreeIter it; |
psychomaniak@18756 | 48 + FmDesktopItem* clicked_item = hit_test(self, &it, evt->x, evt->y); |
psychomaniak@18756 | 49 if(clicked_item) |
psychomaniak@18756 | 50 - { |
psychomaniak@18756 | 51 /* left single click */ |
psychomaniak@18756 | 52 fm_launch_file_simple(GTK_WINDOW(w), NULL, clicked_item->fi, pcmanfm_open_folder, w); |
psychomaniak@18756 | 53 - return TRUE; |
psychomaniak@18756 | 54 - } |
psychomaniak@18756 | 55 } |
psychomaniak@18756 | 56 |
psychomaniak@18756 | 57 /* forward the event to root window */ |
psychomaniak@18756 | 58 - if(! clicked_item) |
psychomaniak@18756 | 59 - forward_event_to_rootwin(gtk_widget_get_screen(w), (GdkEvent*)evt); |
psychomaniak@18756 | 60 + if (self->button_pressed == evt->button) |
psychomaniak@18756 | 61 + { |
psychomaniak@18756 | 62 + if (self->forward_pending) |
psychomaniak@18756 | 63 + forward_event_to_rootwin(gtk_widget_get_screen(w), (GdkEvent*)evt); |
psychomaniak@18756 | 64 + self->button_pressed = 0; |
psychomaniak@18756 | 65 + self->forward_pending = FALSE; |
psychomaniak@18756 | 66 + } |
psychomaniak@18756 | 67 |
psychomaniak@18756 | 68 return TRUE; |
psychomaniak@18756 | 69 } |
psychomaniak@18756 | 70 --- a/src/desktop.h |
psychomaniak@18756 | 71 +++ b/src/desktop.h |
psychomaniak@18756 | 72 @@ -73,13 +73,14 @@ struct _FmDesktop |
psychomaniak@18756 | 73 gint drag_start_x; |
psychomaniak@18756 | 74 gint drag_start_y; |
psychomaniak@18756 | 75 gboolean rubber_bending : 1; |
psychomaniak@18756 | 76 - gboolean button_pressed : 1; |
psychomaniak@18756 | 77 + gboolean forward_pending : 1; |
psychomaniak@18756 | 78 gboolean dragging : 1; |
psychomaniak@18756 | 79 gboolean layout_pending : 1; |
psychomaniak@18756 | 80 guint idle_layout; |
psychomaniak@18756 | 81 FmDndSrc* dnd_src; |
psychomaniak@18756 | 82 FmDndDest* dnd_dest; |
psychomaniak@18756 | 83 guint single_click_timeout_handler; |
psychomaniak@18756 | 84 + guint button_pressed; |
psychomaniak@18756 | 85 FmFolderModel* model; |
psychomaniak@18756 | 86 guint cur_desktop; |
psychomaniak@18756 | 87 gint monitor; |
psychomaniak@18756 | 88 -- |
psychomaniak@18756 | 89 2.1.4 |
psychomaniak@18756 | 90 |