[Xfce4-commits] [panel-plugins/xfce4-whiskermenu-plugin] 06/08: Fix panel button border not shown when pressed.
noreply at xfce.org
noreply at xfce.org
Sat Aug 20 18:35:32 CEST 2016
This is an automated email from the git hooks/post-receive script.
gottcode pushed a commit to annotated tag v1.4.2
in repository panel-plugins/xfce4-whiskermenu-plugin.
commit 45ba694354e751f824037ea102c9b65a811ebe36
Author: Graeme Gott <graeme at gottcode.org>
Date: Thu Dec 11 16:03:47 2014 -0500
Fix panel button border not shown when pressed.
---
panel-plugin/plugin.cpp | 44 +++++++++++---------------------------------
panel-plugin/plugin.h | 3 +--
2 files changed, 12 insertions(+), 35 deletions(-)
diff --git a/panel-plugin/plugin.cpp b/panel-plugin/plugin.cpp
index 5d057f3..c382921 100644
--- a/panel-plugin/plugin.cpp
+++ b/panel-plugin/plugin.cpp
@@ -125,7 +125,7 @@ Plugin::Plugin(XfcePanelPlugin* plugin) :
m_button = xfce_panel_create_toggle_button();
gtk_button_set_relief(GTK_BUTTON(m_button), GTK_RELIEF_NONE);
gtk_button_set_focus_on_click(GTK_BUTTON(m_button), false);
- g_signal_connect_slot(m_button, "button-press-event", &Plugin::button_clicked, this);
+ g_signal_connect_slot(m_button, "toggled", &Plugin::button_toggled, this);
gtk_widget_show(m_button);
m_button_box = GTK_BOX(gtk_hbox_new(false, 2));
@@ -292,24 +292,18 @@ void Plugin::set_configure_enabled(bool enabled)
//-----------------------------------------------------------------------------
-gboolean Plugin::button_clicked(GtkWidget*, GdkEvent* event)
+void Plugin::button_toggled(GtkToggleButton* button)
{
- GdkEventButton* event_button = reinterpret_cast<GdkEventButton*>(event);
- if (event_button->button != 1 || event_button->state & GDK_CONTROL_MASK)
- {
- return false;
- }
-
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_button)) == true)
+ if (gtk_toggle_button_get_active(button) == false)
{
m_window->hide();
+ xfce_panel_plugin_block_autohide(m_plugin, false);
}
else
{
- popup_menu(false, false);
+ xfce_panel_plugin_block_autohide(m_plugin, true);
+ m_window->show(m_button, xfce_panel_plugin_get_orientation(m_plugin) == GTK_ORIENTATION_HORIZONTAL);
}
-
- return true;
}
//-----------------------------------------------------------------------------
@@ -317,7 +311,6 @@ gboolean Plugin::button_clicked(GtkWidget*, GdkEvent* event)
void Plugin::menu_hidden()
{
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m_button), false);
- xfce_panel_plugin_block_autohide(m_plugin, false);
save();
}
@@ -358,9 +351,13 @@ gboolean Plugin::remote_event(XfcePanelPlugin*, gchar* name, GValue* value)
{
m_window->hide();
}
+ else if (value && G_VALUE_HOLDS_BOOLEAN(value) && g_value_get_boolean(value))
+ {
+ m_window->show(NULL, true);
+ }
else
{
- popup_menu(value && G_VALUE_HOLDS_BOOLEAN(value) && g_value_get_boolean(value), true);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m_button), true);
}
return true;
@@ -462,22 +459,3 @@ gboolean Plugin::size_changed(XfcePanelPlugin*, gint size)
}
//-----------------------------------------------------------------------------
-
-void Plugin::popup_menu(bool at_cursor, bool activate_button)
-{
- if (!at_cursor)
- {
- xfce_panel_plugin_block_autohide(m_plugin, true);
- if (activate_button)
- {
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(m_button), true);
- }
- m_window->show(m_button, xfce_panel_plugin_get_orientation(m_plugin) == GTK_ORIENTATION_HORIZONTAL);
- }
- else
- {
- m_window->show(NULL, true);
- }
-}
-
-//-----------------------------------------------------------------------------
diff --git a/panel-plugin/plugin.h b/panel-plugin/plugin.h
index c710b28..dead1f8 100644
--- a/panel-plugin/plugin.h
+++ b/panel-plugin/plugin.h
@@ -58,7 +58,7 @@ public:
void set_configure_enabled(bool enabled);
private:
- gboolean button_clicked(GtkWidget*, GdkEvent* event);
+ void button_toggled(GtkToggleButton* button);
void menu_hidden();
void configure();
#if (LIBXFCE4PANEL_CHECK_VERSION(4,9,0))
@@ -70,7 +70,6 @@ private:
void save();
void show_about();
gboolean size_changed(XfcePanelPlugin*, gint size);
- void popup_menu(bool at_cursor, bool activate_button);
private:
XfcePanelPlugin* m_plugin;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list