This is an automated email from the git hooks/post-receive script. g o t t c o d e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-whiskermenu-plugin.
commit ba2f9f56b6d7d4a1fb48ab3c7c74e4a63b079b6a Author: Graeme Gott <gra...@gottcode.org> Date: Sun Apr 8 15:47:30 2018 -0400 Use plugin get_button function in window. --- panel-plugin/plugin.cpp | 8 ++++---- panel-plugin/plugin.h | 2 +- panel-plugin/window.cpp | 7 ++++--- panel-plugin/window.h | 9 ++++++++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/panel-plugin/plugin.cpp b/panel-plugin/plugin.cpp index 1ccf479..0a84cf4 100644 --- a/panel-plugin/plugin.cpp +++ b/panel-plugin/plugin.cpp @@ -358,7 +358,7 @@ void Plugin::button_toggled(GtkToggleButton* button) else { xfce_panel_plugin_block_autohide(m_plugin, true); - show_menu(m_button, xfce_panel_plugin_get_orientation(m_plugin) == GTK_ORIENTATION_HORIZONTAL); + show_menu(false); } } @@ -419,7 +419,7 @@ gboolean Plugin::remote_event(XfcePanelPlugin*, gchar* name, GValue* value) } else if (value && G_VALUE_HOLDS_BOOLEAN(value) && g_value_get_boolean(value)) { - show_menu(NULL, true); + show_menu(true); } else { @@ -542,7 +542,7 @@ void Plugin::update_size() //----------------------------------------------------------------------------- -void Plugin::show_menu(GtkWidget* parent, bool horizontal) +void Plugin::show_menu(bool at_cursor) { if (wm_settings->menu_opacity != m_opacity) { @@ -554,7 +554,7 @@ void Plugin::show_menu(GtkWidget* parent, bool horizontal) } m_opacity = wm_settings->menu_opacity; } - m_window->show(parent, horizontal); + m_window->show(at_cursor ? Window::PositionAtCursor : Window::Position(xfce_panel_plugin_get_orientation(m_plugin))); } //----------------------------------------------------------------------------- diff --git a/panel-plugin/plugin.h b/panel-plugin/plugin.h index b6bbe00..9104c69 100644 --- a/panel-plugin/plugin.h +++ b/panel-plugin/plugin.h @@ -71,7 +71,7 @@ private: void show_about(); gboolean size_changed(XfcePanelPlugin*, gint size); void update_size(); - void show_menu(GtkWidget* parent, bool horizontal); + void show_menu(bool at_cursor); private: XfcePanelPlugin* m_plugin; diff --git a/panel-plugin/window.cpp b/panel-plugin/window.cpp index fd72908..c51bae1 100644 --- a/panel-plugin/window.cpp +++ b/panel-plugin/window.cpp @@ -323,7 +323,7 @@ void WhiskerMenu::Window::hide() //----------------------------------------------------------------------------- -void WhiskerMenu::Window::show(GtkWidget* parent, bool horizontal) +void WhiskerMenu::Window::show(const Position position) { // Handle showing tooltips if (wm_settings->launcher_show_tooltip) @@ -387,10 +387,11 @@ void WhiskerMenu::Window::show(GtkWidget* parent, bool horizontal) GdkScreen* screen = NULL; int parent_x = 0, parent_y = 0, parent_w = 0, parent_h = 0; - if (parent != NULL) + if (position != PositionAtCursor) { // Wait up to half a second for auto-hidden panels to be shown clock_t end = clock() + (CLOCKS_PER_SEC / 2); + GtkWidget* parent = m_plugin->get_button(); GtkWindow* parent_window = GTK_WINDOW(gtk_widget_get_toplevel(parent)); gtk_window_get_position(parent_window, &parent_x, &parent_y); while ((parent_x == -9999) && (parent_y == -9999) && (clock() < end)) @@ -451,7 +452,7 @@ void WhiskerMenu::Window::show(GtkWidget* parent, bool horizontal) // Find window position bool layout_left = ((2 * (parent_x - monitor.x)) + parent_w) < monitor.width; bool layout_bottom = ((2 * (parent_y - monitor.y)) + (parent_h / 2)) > monitor.height; - if (horizontal) + if (position != PositionVertical) { m_geometry.x = layout_left ? parent_x : (parent_x + parent_w - m_geometry.width); m_geometry.y = layout_bottom ? (parent_y - m_geometry.height) : (parent_y + parent_h); diff --git a/panel-plugin/window.h b/panel-plugin/window.h index bb7a4f2..4855831 100644 --- a/panel-plugin/window.h +++ b/panel-plugin/window.h @@ -41,6 +41,13 @@ public: explicit Window(Plugin* plugin); ~Window(); + enum Position + { + PositionHorizontal = GTK_ORIENTATION_HORIZONTAL, + PositionVertical = GTK_ORIENTATION_VERTICAL, + PositionAtCursor + }; + GtkWidget* get_widget() const { return GTK_WIDGET(m_window); @@ -67,7 +74,7 @@ public: } void hide(); - void show(GtkWidget* parent, bool horizontal); + void show(const Position position); void save(); void on_context_menu_destroyed(); void set_categories(const std::vector<SectionButton*>& categories); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits