applets: partially fix the build without X11
This commit is contained in:
parent
8b8169709a
commit
0ad30b30fb
|
@ -48,10 +48,12 @@ typedef struct _PanelApplet
|
||||||
GdkScreen * screen;
|
GdkScreen * screen;
|
||||||
GdkWindow * root;
|
GdkWindow * root;
|
||||||
|
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
Atom atom_active;
|
Atom atom_active;
|
||||||
Atom atom_close;
|
Atom atom_close;
|
||||||
Window window;
|
Window window;
|
||||||
Window panel;
|
Window panel;
|
||||||
|
#endif
|
||||||
} Close;
|
} Close;
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,11 +66,13 @@ static void _close_destroy(Close * close);
|
||||||
static void _close_do(Close * close);
|
static void _close_do(Close * close);
|
||||||
|
|
||||||
/* callbacks */
|
/* callbacks */
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
static void _close_on_close(gpointer data);
|
static void _close_on_close(gpointer data);
|
||||||
static GdkFilterReturn _close_on_filter(GdkXEvent * xevent, GdkEvent * event,
|
static GdkFilterReturn _close_on_filter(GdkXEvent * xevent, GdkEvent * event,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
static void _close_on_screen_changed(GtkWidget * widget, GdkScreen * previous,
|
static void _close_on_screen_changed(GtkWidget * widget, GdkScreen * previous,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* public */
|
/* public */
|
||||||
|
@ -110,17 +114,23 @@ static Close * _close_init(PanelAppletHelper * helper, GtkWidget ** widget)
|
||||||
image = gtk_image_new_from_stock(applet.icon, iconsize);
|
image = gtk_image_new_from_stock(applet.icon, iconsize);
|
||||||
#endif
|
#endif
|
||||||
gtk_button_set_image(GTK_BUTTON(close->widget), image);
|
gtk_button_set_image(GTK_BUTTON(close->widget), image);
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
g_signal_connect_swapped(close->widget, "clicked", G_CALLBACK(
|
g_signal_connect_swapped(close->widget, "clicked", G_CALLBACK(
|
||||||
_close_on_close), close);
|
_close_on_close), close);
|
||||||
close->source = g_signal_connect(close->widget, "screen-changed",
|
close->source = g_signal_connect(close->widget, "screen-changed",
|
||||||
G_CALLBACK(_close_on_screen_changed), close);
|
G_CALLBACK(_close_on_screen_changed), close);
|
||||||
|
#else
|
||||||
|
close->source = 0;
|
||||||
|
#endif
|
||||||
close->display = NULL;
|
close->display = NULL;
|
||||||
close->screen = NULL;
|
close->screen = NULL;
|
||||||
close->root = NULL;
|
close->root = NULL;
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
close->atom_active = 0;
|
close->atom_active = 0;
|
||||||
close->atom_close = 0;
|
close->atom_close = 0;
|
||||||
close->window = None;
|
close->window = None;
|
||||||
close->panel = None;
|
close->panel = None;
|
||||||
|
#endif
|
||||||
gtk_widget_show(close->widget);
|
gtk_widget_show(close->widget);
|
||||||
*widget = close->widget;
|
*widget = close->widget;
|
||||||
return close;
|
return close;
|
||||||
|
@ -132,13 +142,16 @@ static void _close_destroy(Close * close)
|
||||||
{
|
{
|
||||||
if(close->source != 0)
|
if(close->source != 0)
|
||||||
g_signal_handler_disconnect(close->widget, close->source);
|
g_signal_handler_disconnect(close->widget, close->source);
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
if(close->root != NULL)
|
if(close->root != NULL)
|
||||||
gdk_window_remove_filter(close->root, _close_on_filter, close);
|
gdk_window_remove_filter(close->root, _close_on_filter, close);
|
||||||
|
#endif
|
||||||
gtk_widget_destroy(close->widget);
|
gtk_widget_destroy(close->widget);
|
||||||
object_delete(close);
|
object_delete(close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
/* accessors */
|
/* accessors */
|
||||||
/* close_get_window_property */
|
/* close_get_window_property */
|
||||||
static int _close_get_window_property(Close * close, Window window,
|
static int _close_get_window_property(Close * close, Window window,
|
||||||
|
@ -269,3 +282,4 @@ static void _close_on_screen_changed(GtkWidget * widget, GdkScreen * previous,
|
||||||
close->display, "_NET_CLOSE_WINDOW");
|
close->display, "_NET_CLOSE_WINDOW");
|
||||||
_close_do(close);
|
_close_do(close);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -92,6 +92,7 @@ static void _desktop_destroy(Desktop * desktop)
|
||||||
/* on_clicked */
|
/* on_clicked */
|
||||||
static void _desktop_on_clicked(GtkWidget * widget)
|
static void _desktop_on_clicked(GtkWidget * widget)
|
||||||
{
|
{
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
GdkScreen * screen;
|
GdkScreen * screen;
|
||||||
GdkDisplay * display;
|
GdkDisplay * display;
|
||||||
GdkWindow * root;
|
GdkWindow * root;
|
||||||
|
@ -113,4 +114,5 @@ static void _desktop_on_clicked(GtkWidget * widget)
|
||||||
SubstructureNotifyMask | SubstructureRedirectMask,
|
SubstructureNotifyMask | SubstructureRedirectMask,
|
||||||
&xev);
|
&xev);
|
||||||
gdk_error_trap_pop();
|
gdk_error_trap_pop();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,10 @@
|
||||||
#include <System.h>
|
#include <System.h>
|
||||||
#include <Desktop.h>
|
#include <Desktop.h>
|
||||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
#if GTK_CHECK_VERSION(3, 0, 0)
|
||||||
# include <gtk/gtkx.h>
|
# include <gdk/gdk.h>
|
||||||
|
# if defined(GDK_WINDOWING_X11)
|
||||||
|
# include <gtk/gtkx.h>
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#include "Panel/applet.h"
|
#include "Panel/applet.h"
|
||||||
#define _(string) gettext(string)
|
#define _(string) gettext(string)
|
||||||
|
@ -36,15 +39,17 @@
|
||||||
/* Embed */
|
/* Embed */
|
||||||
/* private */
|
/* private */
|
||||||
/* types */
|
/* types */
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
typedef struct _EmbedWidget
|
typedef struct _EmbedWidget
|
||||||
{
|
{
|
||||||
GtkWidget * socket;
|
GtkWidget * socket;
|
||||||
#if GTK_CHECK_VERSION(3, 0, 0)
|
# if GTK_CHECK_VERSION(3, 0, 0)
|
||||||
unsigned long id;
|
unsigned long id;
|
||||||
#else
|
# else
|
||||||
GdkNativeWindow id;
|
GdkNativeWindow id;
|
||||||
#endif
|
# endif
|
||||||
} EmbedWidget;
|
} EmbedWidget;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _PanelApplet
|
typedef struct _PanelApplet
|
||||||
{
|
{
|
||||||
|
@ -57,8 +62,10 @@ typedef struct _PanelApplet
|
||||||
GtkWidget * window;
|
GtkWidget * window;
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
|
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
EmbedWidget * widgets;
|
EmbedWidget * widgets;
|
||||||
size_t widgets_cnt;
|
size_t widgets_cnt;
|
||||||
|
#endif
|
||||||
} Embed;
|
} Embed;
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,8 +114,10 @@ static Embed * _embed_init(PanelAppletHelper * helper,
|
||||||
embed->window = NULL;
|
embed->window = NULL;
|
||||||
embed->vbox = NULL;
|
embed->vbox = NULL;
|
||||||
embed->button = gtk_toggle_button_new();
|
embed->button = gtk_toggle_button_new();
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
embed->widgets = NULL;
|
embed->widgets = NULL;
|
||||||
embed->widgets_cnt = 0;
|
embed->widgets_cnt = 0;
|
||||||
|
#endif
|
||||||
#if GTK_CHECK_VERSION(2, 12, 0)
|
#if GTK_CHECK_VERSION(2, 12, 0)
|
||||||
gtk_widget_set_tooltip_text(embed->button, _("Desktop notifications"));
|
gtk_widget_set_tooltip_text(embed->button, _("Desktop notifications"));
|
||||||
#endif
|
#endif
|
||||||
|
@ -138,7 +147,9 @@ static void _embed_destroy(Embed * embed)
|
||||||
g_source_remove(embed->source);
|
g_source_remove(embed->source);
|
||||||
if(embed->vbox != NULL)
|
if(embed->vbox != NULL)
|
||||||
g_object_unref(embed->vbox);
|
g_object_unref(embed->vbox);
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
free(embed->widgets);
|
free(embed->widgets);
|
||||||
|
#endif
|
||||||
gtk_widget_destroy(embed->button);
|
gtk_widget_destroy(embed->button);
|
||||||
object_delete(embed);
|
object_delete(embed);
|
||||||
}
|
}
|
||||||
|
@ -165,6 +176,7 @@ static void _embed_on_added(gpointer data)
|
||||||
static int _embed_on_desktop_message(void * data, uint32_t value1,
|
static int _embed_on_desktop_message(void * data, uint32_t value1,
|
||||||
uint32_t value2, uint32_t value3)
|
uint32_t value2, uint32_t value3)
|
||||||
{
|
{
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
Embed * embed = data;
|
Embed * embed = data;
|
||||||
GtkWidget * socket;
|
GtkWidget * socket;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
@ -197,6 +209,7 @@ static int _embed_on_desktop_message(void * data, uint32_t value1,
|
||||||
gtk_widget_show(socket);
|
gtk_widget_show(socket);
|
||||||
gtk_box_pack_start(GTK_BOX(embed->vbox), socket, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(embed->vbox), socket, FALSE, TRUE, 0);
|
||||||
gtk_socket_add_id(GTK_SOCKET(socket), value2);
|
gtk_socket_add_id(GTK_SOCKET(socket), value2);
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,12 +249,13 @@ static gboolean _embed_on_idle(gpointer data)
|
||||||
/* embed_on_removed */
|
/* embed_on_removed */
|
||||||
static gboolean _embed_on_removed(GtkWidget * widget, gpointer data)
|
static gboolean _embed_on_removed(GtkWidget * widget, gpointer data)
|
||||||
{
|
{
|
||||||
|
#if defined(GDK_WINDOWING_X11)
|
||||||
Embed * embed = data;
|
Embed * embed = data;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
#ifdef DEBUG
|
# ifdef DEBUG
|
||||||
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
fprintf(stderr, "DEBUG: %s()\n", __func__);
|
||||||
#endif
|
# endif
|
||||||
for(i = 0; i < embed->widgets_cnt; i++)
|
for(i = 0; i < embed->widgets_cnt; i++)
|
||||||
{
|
{
|
||||||
if(embed->widgets[i].socket != widget)
|
if(embed->widgets[i].socket != widget)
|
||||||
|
@ -257,10 +271,11 @@ static gboolean _embed_on_removed(GtkWidget * widget, gpointer data)
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(embed->button),
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(embed->button),
|
||||||
FALSE);
|
FALSE);
|
||||||
gtk_widget_set_sensitive(embed->button, FALSE);
|
gtk_widget_set_sensitive(embed->button, FALSE);
|
||||||
#ifdef EMBEDDED
|
# ifdef EMBEDDED
|
||||||
gtk_widget_hide(embed->button);
|
gtk_widget_hide(embed->button);
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user