summaryrefslogtreecommitdiff
path: root/src/applet-main.c
diff options
context:
space:
mode:
authorStefano Karapetsas <[email protected]>2014-06-25 13:46:19 +0200
committerStefano Karapetsas <[email protected]>2014-06-25 13:46:19 +0200
commit4c51215f6e2ba302f4d9f1a78650d9209eca7f35 (patch)
tree365175dbda669a57c4cbed07089e6639a002245d /src/applet-main.c
parent12ea8a6c3b8b1e6fd7c62624dd123ae49d92d833 (diff)
downloadmate-indicator-applet-4c51215f6e2ba302f4d9f1a78650d9209eca7f35.tar.bz2
mate-indicator-applet-4c51215f6e2ba302f4d9f1a78650d9209eca7f35.tar.xz
Add GTK3 support
Diffstat (limited to 'src/applet-main.c')
-rw-r--r--src/applet-main.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/applet-main.c b/src/applet-main.c
index 995552c..f1792b8 100644
--- a/src/applet-main.c
+++ b/src/applet-main.c
@@ -26,6 +26,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <glib/gi18n.h>
#include <mate-panel-applet.h>
#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
#include "libindicator/indicator-object.h"
#include "tomboykeybinder.h"
@@ -49,11 +50,13 @@ static MatePanelAppletOrient orient;
static gboolean applet_fill_cb (MatePanelApplet * applet, const gchar * iid, gpointer data);
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void cw_panel_background_changed (MatePanelApplet *applet,
MatePanelAppletBackgroundType type,
GdkColor *colour,
GdkPixmap *pixmap,
GtkWidget *menubar);
+#endif
static void update_accessible_desc (IndicatorObjectEntry * entry, GtkWidget * menuitem);
/*************
@@ -580,13 +583,28 @@ menubar_press (GtkWidget * widget,
}
static gboolean
+#if GTK_CHECK_VERSION(3, 0, 0)
+menubar_on_draw (GtkWidget * widget,
+ cairo_t * cr,
+ GtkWidget * menubar)
+#else
menubar_on_expose (GtkWidget * widget,
GdkEventExpose *event G_GNUC_UNUSED,
GtkWidget * menubar)
+#endif
{
if (gtk_widget_has_focus(menubar))
- gtk_paint_focus(gtk_widget_get_style(widget), gtk_widget_get_window(widget), gtk_widget_get_state(menubar),
- NULL, widget, "menubar-applet", 0, 0, -1, -1);
+ gtk_paint_focus(gtk_widget_get_style(widget),
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cr,
+#else
+ gtk_widget_get_window(widget),
+#endif
+ gtk_widget_get_state(menubar),
+#if !GTK_CHECK_VERSION(3, 0, 0)
+ NULL,
+#endif
+ widget, "menubar-applet", 0, 0, -1, -1);
return FALSE;
}
@@ -864,7 +882,11 @@ applet_fill_cb (MatePanelApplet * applet, const gchar * iid G_GNUC_UNUSED,
gtk_widget_set_can_focus (menubar, TRUE);
gtk_widget_set_name(GTK_WIDGET (menubar), "fast-user-switch-menubar");
g_signal_connect(menubar, "button-press-event", G_CALLBACK(menubar_press), NULL);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect_after(menubar, "draw", G_CALLBACK(menubar_on_draw), menubar);
+#else
g_signal_connect_after(menubar, "expose-event", G_CALLBACK(menubar_on_expose), menubar);
+#endif
g_signal_connect(applet, "change-orient",
G_CALLBACK(matepanelapplet_reorient_cb), menubar);
gtk_container_set_border_width(GTK_CONTAINER(menubar), 0);
@@ -905,6 +927,9 @@ applet_fill_cb (MatePanelApplet * applet, const gchar * iid G_GNUC_UNUSED,
if (indicators_loaded == 0) {
/* A label to allow for click through */
GtkWidget * item = gtk_label_new(_("No Indicators"));
+#if GTK_CHECK_VERSION(3, 0, 0)
+ mate_panel_applet_set_background_widget(applet, item);
+#endif
gtk_container_add(GTK_CONTAINER(applet), item);
gtk_widget_show(item);
} else {
@@ -913,9 +938,11 @@ applet_fill_cb (MatePanelApplet * applet, const gchar * iid G_GNUC_UNUSED,
gtk_widget_show(menubar);
}
+#if !GTK_CHECK_VERSION(3, 0, 0)
/* Background of applet */
g_signal_connect(applet, "change-background",
G_CALLBACK(cw_panel_background_changed), menubar);
+#endif
gtk_widget_show(GTK_WIDGET(applet));
@@ -923,6 +950,7 @@ applet_fill_cb (MatePanelApplet * applet, const gchar * iid G_GNUC_UNUSED,
}
+#if !GTK_CHECK_VERSION(3, 0, 0)
static void
cw_panel_background_changed (MatePanelApplet *applet,
MatePanelAppletBackgroundType type,
@@ -961,4 +989,4 @@ cw_panel_background_changed (MatePanelApplet *applet,
break;
}
}
-
+#endif