summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/gtkui/gtkui.c2
-rw-r--r--plugins/gtkui/gtkui_api.h9
-rw-r--r--plugins/gtkui/widgets.c5
-rw-r--r--plugins/gtkui/widgets.h3
-rw-r--r--plugins/pltbrowser/pltbrowser.c3
5 files changed, 19 insertions, 3 deletions
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index 9bdd930e..c8604599 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -1754,6 +1754,8 @@ static ddb_gtkui_t plugin = {
.w_override_signals = w_override_signals,
.w_is_registered = w_is_registered,
.w_get_rootwidget = w_get_rootwidget,
+ .w_set_design_mode = w_set_design_mode,
+ .w_get_design_mode = w_get_design_mode,
.w_create = w_create,
.w_destroy = w_destroy,
.w_append = w_append,
diff --git a/plugins/gtkui/gtkui_api.h b/plugins/gtkui/gtkui_api.h
index 9dff7745..70d23824 100644
--- a/plugins/gtkui/gtkui_api.h
+++ b/plugins/gtkui/gtkui_api.h
@@ -138,12 +138,15 @@ typedef struct {
// returns the toplevel widget
ddb_gtkui_widget_t * (*w_get_rootwidget) (void);
+ // enter/exit design mode
+ void (*w_set_design_mode) (int active);
+
+ // check whether we are in design mode
+ int (*w_get_design_mode) (void);
+
// create a widget of specified type
ddb_gtkui_widget_t * (*w_create) (const char *type);
- // set widget name
- void (*w_set_name) (ddb_gtkui_widget_t *w, const char *name);
-
// destroy the widget
void (*w_destroy) (ddb_gtkui_widget_t *w);
diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c
index d5056545..50718874 100644
--- a/plugins/gtkui/widgets.c
+++ b/plugins/gtkui/widgets.c
@@ -161,6 +161,11 @@ w_set_design_mode (int active) {
set_design_mode (rootwidget);
}
+int
+w_get_design_mode (void) {
+ return design_mode;
+}
+
void
w_append (ddb_gtkui_widget_t *cont, ddb_gtkui_widget_t *child) {
child->parent = cont;
diff --git a/plugins/gtkui/widgets.h b/plugins/gtkui/widgets.h
index ee8d7b05..9d262b6d 100644
--- a/plugins/gtkui/widgets.h
+++ b/plugins/gtkui/widgets.h
@@ -36,6 +36,9 @@ w_get_rootwidget (void);
void
w_set_design_mode (int active);
+int
+w_get_design_mode (void);
+
void
w_reg_widget (const char *title, ddb_gtkui_widget_t *(*create_func) (void), ...);
diff --git a/plugins/pltbrowser/pltbrowser.c b/plugins/pltbrowser/pltbrowser.c
index c1e168d0..76f2b749 100644
--- a/plugins/pltbrowser/pltbrowser.c
+++ b/plugins/pltbrowser/pltbrowser.c
@@ -104,6 +104,9 @@ on_pltbrowser_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
+ if (gtkui_plugin->w_get_design_mode ()) {
+ return FALSE;
+ }
if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
GtkTreePath *path;
GtkTreeViewColumn *col;