[dasher] Improve direct mode (the application style) toggle
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher] Improve direct mode (the application style) toggle
- Date: Mon, 1 Oct 2012 14:39:30 +0000 (UTC)
commit 2e453dd47cbe2f8bfdc8432f761239740aa22c8a
Author: Patrick Welche <prlw1 cam ac uk>
Date: Sun Sep 30 18:46:32 2012 +0100
Improve direct mode (the application style) toggle
Make the direct mode adjustments that were in
dasher_main_setup_window_style()
dasher_main_load_interface()
namely, hide the text box, stick dasher to all desktops and
refuse focus.
We'll have to find another name for direct mode the application
style, as one of the button modes is already called direct mode.
Src/Gtk2/dasher_main.cpp | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/Src/Gtk2/dasher_main.cpp b/Src/Gtk2/dasher_main.cpp
index 4b2c530..82c79b0 100644
--- a/Src/Gtk2/dasher_main.cpp
+++ b/Src/Gtk2/dasher_main.cpp
@@ -313,12 +313,6 @@ dasher_main_new(int *argc, char ***argv, SCommandLine *pCommandLine) {
dasher_lock_dialogue_new(pPrivate->pXML, 0);
#endif
- g_object_unref(pPrivate->pXML);
- pPrivate->pXML = 0;
-
- g_object_unref(pPrivate->pPrefXML);
- pPrivate->pPrefXML = 0;
-
/* Set up various bits and pieces */
dasher_main_set_window_title(pDasherMain);
dasher_main_populate_controls(pDasherMain);
@@ -592,9 +586,24 @@ void show_game_file_dialog(GtkWidget *pButton, GtkWidget *pWidget, gpointer pDat
void dasher_main_command_toggle_direct_mode(DasherMain *pSelf) {
DasherMainPrivate *pPrivate = DASHER_MAIN_GET_PRIVATE(pSelf);
+ // Question of style: we could hide/show in
+ // dasher_main_handle_parameter_change()
if (dasher_app_settings_get_long(pPrivate->pAppSettings, APP_LP_STYLE) == APP_STYLE_DIRECT) {
+ // Opposite of direct mode
+ gtk_widget_show(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "DasherEditor")));
+ gtk_window_set_keep_above(GTK_WINDOW(pPrivate->pMainWindow), false);
+ gtk_window_set_accept_focus(GTK_WINDOW(pPrivate->pMainWindow), true);
+ gtk_window_unstick(GTK_WINDOW(pPrivate->pMainWindow));
dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_TRAD);
} else {
+ // Hide text window
+ gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(pPrivate->pXML, "DasherEditor")));
+ // Direct mode - set always on top
+ gtk_window_set_keep_above(GTK_WINDOW(pPrivate->pMainWindow), true);
+ // Refuse focus
+ gtk_window_set_accept_focus(GTK_WINDOW(pPrivate->pMainWindow), false);
+ // Stick on all desktops
+ gtk_window_stick(GTK_WINDOW(pPrivate->pMainWindow));
dasher_app_settings_set_long(pPrivate->pAppSettings, APP_LP_STYLE, APP_STYLE_DIRECT);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]