This is an automated email from the git hooks/post-receive script.

gottcode pushed a 
commit to branch 
master
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

Reply via email to