| 110 ui_set_property("ui.window.height", height_str); |
110 ui_set_property("ui.window.height", height_str); |
| 111 } |
111 } |
| 112 } |
112 } |
| 113 } |
113 } |
| 114 |
114 |
| 115 obj->ref--; |
115 if(obj->ref > 0) { |
| |
116 obj->ref--; |
| |
117 } else { |
| |
118 // warn about invalid reference counting |
| |
119 fprintf(stderr, "Error: UiObject %p ref == 0\n", obj); |
| |
120 } |
| 116 if(obj->ref > 0) { |
121 if(obj->ref > 0) { |
| 117 #if GTK_CHECK_VERSION(2, 18, 0) |
122 #if GTK_CHECK_VERSION(2, 18, 0) |
| 118 gtk_widget_set_visible(obj->widget, FALSE); |
123 gtk_widget_set_visible(obj->widget, FALSE); |
| 119 #else |
124 #else |
| 120 gtk_widget_hide(obj->widget); |
125 gtk_widget_hide(obj->widget); |
| 136 uic_context_prepare_close(obj->ctx); |
141 uic_context_prepare_close(obj->ctx); |
| 137 return FALSE; |
142 return FALSE; |
| 138 } |
143 } |
| 139 } |
144 } |
| 140 |
145 |
| |
146 static void window_onclose_callback(UiObject *obj) { |
| |
147 if(obj->onclose) { |
| |
148 UiEvent event; |
| |
149 memset(&event, 0, sizeof(UiEvent)); |
| |
150 event.obj = obj; |
| |
151 event.window = obj->window; |
| |
152 event.document = obj->ctx->document; |
| |
153 obj->onclose(&event, obj->onclosedata); |
| |
154 } |
| |
155 } |
| |
156 |
| 141 #if GTK_MAJOR_VERSION >= 4 |
157 #if GTK_MAJOR_VERSION >= 4 |
| 142 static gboolean close_request(GtkWindow* self, UiObject *obj) { |
158 static gboolean close_request(GtkWindow* self, UiObject *obj) { |
| |
159 window_onclose_callback(obj); |
| 143 return ui_window_close_request(obj); |
160 return ui_window_close_request(obj); |
| 144 } |
161 } |
| 145 #else |
162 #else |
| 146 static gboolean close_request(GtkWidget* self, GdkEvent* event, UiObject *obj) { |
163 static gboolean close_request(GtkWidget* self, GdkEvent* event, UiObject *obj) { |
| |
164 window_onclose_callback(obj); |
| 147 return ui_window_close_request(obj); |
165 return ui_window_close_request(obj); |
| 148 } |
166 } |
| 149 #endif |
167 #endif |
| 150 |
168 |
| 151 static void save_window_splitview_pos(GtkWidget *widget, void *unused) { |
169 static void save_window_splitview_pos(GtkWidget *widget, void *unused) { |
| 303 if(show_title) { |
321 if(show_title) { |
| 304 if(!strcmp(show_title, "main") && sidebar) { |
322 if(!strcmp(show_title, "main") && sidebar) { |
| 305 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
323 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
| 306 } else if(!strcmp(show_title, "sidebar")) { |
324 } else if(!strcmp(show_title, "sidebar")) { |
| 307 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
325 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
| 308 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), TRUE); |
326 if(headerbar_sidebar) { |
| |
327 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), TRUE); |
| |
328 } |
| 309 } else if(!strcmp(show_title, "false")) { |
329 } else if(!strcmp(show_title, "false")) { |
| 310 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
330 if(headerbar_sidebar) { |
| |
331 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
| |
332 } |
| 311 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
333 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
| 312 } else { |
334 } else { |
| 313 fprintf(stderr, "Unknown value '%s' for property ui.gtk.window.showtitle\n", show_title); |
335 fprintf(stderr, "Unknown value '%s' for property ui.gtk.window.showtitle\n", show_title); |
| 314 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
336 if(headerbar_sidebar) { |
| |
337 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), FALSE); |
| |
338 } |
| 315 } |
339 } |
| 316 } else { |
340 } else { |
| 317 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
341 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_main), FALSE); |
| 318 if(sidebar) { |
342 if(headerbar_sidebar) { |
| 319 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), TRUE); |
343 adw_header_bar_set_show_title(ADW_HEADER_BAR(headerbar_sidebar), TRUE); |
| 320 } |
344 } |
| 321 } |
345 } |
| 322 |
346 |
| 323 adw_toolbar_view_add_top_bar(ADW_TOOLBAR_VIEW(toolbar_view), headerbar_main); |
347 adw_toolbar_view_add_top_bar(ADW_TOOLBAR_VIEW(toolbar_view), headerbar_main); |