diff options
author | osch <oliver at luced de> | 2019-05-16 20:05:32 +0200 |
---|---|---|
committer | raveit65 <[email protected]> | 2019-06-03 14:14:38 +0200 |
commit | ecca5019989b0e7a78fee291c7d555968fe9ba74 (patch) | |
tree | 839f74fe31b4e0098c4111736b5af1396a4ff4ec /src/ui | |
parent | ddee987ba42fe793cc5a8573288ef5d48dfef510 (diff) | |
download | marco-ecca5019989b0e7a78fee291c7d555968fe9ba74.tar.bz2 marco-ecca5019989b0e7a78fee291c7d555968fe9ba74.tar.xz |
Handle mouse clicks in Alt+Tab Popup
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/tabpopup.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/ui/tabpopup.c b/src/ui/tabpopup.c index 9f83fb64..b896b0e3 100644 --- a/src/ui/tabpopup.c +++ b/src/ui/tabpopup.c @@ -640,6 +640,46 @@ meta_ui_tab_popup_select (MetaTabPopup *popup, } } +Window +meta_ui_tab_popup_get_xid (MetaTabPopup *popup) +{ + if (popup != NULL && popup->window != NULL) + return gdk_x11_window_get_xid(gtk_widget_get_window(popup->window)); + else + return 0; +} + +void +meta_ui_tab_popup_mouse_press (MetaTabPopup *popup, + gint x, + gint y) +{ + GList *tmp = popup->entries; + gboolean found = FALSE; + while (tmp != NULL && !found) + { + TabEntry *te = tmp->data; + gint wx, wy; + if (gtk_widget_translate_coordinates(popup->window, + te->widget, + x, y, + &wx, &wy)) + { + GtkAllocation alloc; + gtk_widget_get_allocation(te->widget, &alloc); + found = (0 <= wx && wx < alloc.width && + 0 <= wy && wy < alloc.height); + if (found) + { + popup->current = tmp; + display_entry (popup, te); + } + } + tmp = tmp->next; + } +} + + #define META_TYPE_SELECT_IMAGE (meta_select_image_get_type ()) #define META_SELECT_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_SELECT_IMAGE, MetaSelectImage)) |