[Xfce4-commits] r30188 - in terminal/trunk: doc/C terminal
Nick Schermer
nick at xfce.org
Fri Jul 3 19:56:21 CEST 2009
Author: nick
Date: 2009-07-03 17:56:21 +0000 (Fri, 03 Jul 2009)
New Revision: 30188
Modified:
terminal/trunk/doc/C/Terminal.xml.in
terminal/trunk/terminal/terminal-preferences.c
terminal/trunk/terminal/terminal-preferences.h
terminal/trunk/terminal/terminal-screen.c
Log:
Add hidden option MiscCursorShape to set the cursor shape (bug #4602).
This option requires atleast vte version 0.19.1.
Modified: terminal/trunk/doc/C/Terminal.xml.in
===================================================================
--- terminal/trunk/doc/C/Terminal.xml.in 2009-07-03 15:32:32 UTC (rev 30187)
+++ terminal/trunk/doc/C/Terminal.xml.in 2009-07-03 17:56:21 UTC (rev 30188)
@@ -1314,6 +1314,7 @@
MiscBell=TRUE
MiscConfirmClose=FALSE
MiscCursorBlinks=TRUE
+MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
MiscCycleTabs=FALSE
MiscInheritGeometry=TRUE
MiscMouseAutohide=FALSE
@@ -1368,6 +1369,19 @@
</para>
</listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><varname>MiscCursorShape</varname></term>
+ <listitem>
+ <para>
+ Specifies the shape of the cursor in the terminal. This can be either
+ <literal>TERMINAL_CURSOR_SHAPE_BLOCK</literal> (the default),
+ <literal>TERMINAL_CURSOR_SHAPE_IBEAM</literal> or
+ <literal>TERMINAL_CURSOR_SHAPE_UNDERLINE</literal>. This option is
+ only available when you compile against VTE 0.19.1 or newer.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>MiscCycleTabs</varname></term>
Modified: terminal/trunk/terminal/terminal-preferences.c
===================================================================
--- terminal/trunk/terminal/terminal-preferences.c 2009-07-03 15:32:32 UTC (rev 30187)
+++ terminal/trunk/terminal/terminal-preferences.c 2009-07-03 17:56:21 UTC (rev 30188)
@@ -109,6 +109,7 @@
PROP_MISC_BELL,
PROP_MISC_BORDERS_DEFAULT,
PROP_MISC_CURSOR_BLINKS,
+ PROP_MISC_CURSOR_SHAPE,
PROP_MISC_DEFAULT_GEOMETRY,
PROP_MISC_INHERIT_GEOMETRY,
PROP_MISC_MENUBAR_DEFAULT,
@@ -298,6 +299,8 @@
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_TITLE, transform_string_to_enum);
if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_ERASE_BINDING))
g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_ERASE_BINDING, transform_string_to_enum);
+ if (!g_value_type_transformable (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE))
+ g_value_register_transform_func (G_TYPE_STRING, TERMINAL_TYPE_CURSOR_SHAPE, transform_string_to_enum);
/**
* TerminalPreferences:accel-new-tab:
@@ -1036,6 +1039,18 @@
EXO_PARAM_READWRITE));
/**
+ * TerminalPreferences:misc-cursor-shape:
+ **/
+ g_object_class_install_property (gobject_class,
+ PROP_MISC_CURSOR_SHAPE,
+ g_param_spec_enum ("misc-cursor-shape",
+ "misc-cursor-shape",
+ "MiscCursorShape",
+ TERMINAL_TYPE_CURSOR_SHAPE,
+ TERMINAL_CURSOR_SHAPE_BLOCK,
+ EXO_PARAM_READWRITE));
+
+ /**
* TerminalPreferences:misc-default-geometry:
**/
g_object_class_install_property (gobject_class,
Modified: terminal/trunk/terminal/terminal-preferences.h
===================================================================
--- terminal/trunk/terminal/terminal-preferences.h 2009-07-03 15:32:32 UTC (rev 30187)
+++ terminal/trunk/terminal/terminal-preferences.h 2009-07-03 17:56:21 UTC (rev 30188)
@@ -40,7 +40,7 @@
{
TERMINAL_SCROLLBAR_NONE,
TERMINAL_SCROLLBAR_LEFT,
- TERMINAL_SCROLLBAR_RIGHT,
+ TERMINAL_SCROLLBAR_RIGHT
} TerminalScrollbar;
typedef enum /*< enum,prefix=TERMINAL_TITLE >*/
@@ -48,14 +48,14 @@
TERMINAL_TITLE_REPLACE,
TERMINAL_TITLE_PREPEND,
TERMINAL_TITLE_APPEND,
- TERMINAL_TITLE_HIDE,
+ TERMINAL_TITLE_HIDE
} TerminalTitle;
typedef enum /*< enum,prefix=TERMINAL_BACKGROUND >*/
{
TERMINAL_BACKGROUND_SOLID,
TERMINAL_BACKGROUND_IMAGE,
- TERMINAL_BACKGROUND_TRANSPARENT,
+ TERMINAL_BACKGROUND_TRANSPARENT
} TerminalBackground;
typedef enum /*< enum,prefix=TERMINAL_BACKGROUND_STYLE >*/
@@ -63,7 +63,7 @@
TERMINAL_BACKGROUND_STYLE_TILED,
TERMINAL_BACKGROUND_STYLE_CENTERED,
TERMINAL_BACKGROUND_STYLE_SCALED,
- TERMINAL_BACKGROUND_STYLE_STRETCHED,
+ TERMINAL_BACKGROUND_STYLE_STRETCHED
} TerminalBackgroundStyle;
typedef enum /*< enum,prefix=TERMINAL_ERASE_BINDING >*/
@@ -71,9 +71,16 @@
TERMINAL_ERASE_BINDING_AUTO,
TERMINAL_ERASE_BINDING_ASCII_DELETE,
TERMINAL_ERASE_BINDING_DELETE_SEQUENCE,
- TERMINAL_ERASE_BINDING_ASCII_BACKSPACE,
+ TERMINAL_ERASE_BINDING_ASCII_BACKSPACE
} TerminalEraseBinding;
+typedef enum /*< enum,prefix=TERMINAL_CURSOR_SHAPE >*/
+{
+ TERMINAL_CURSOR_SHAPE_BLOCK,
+ TERMINAL_CURSOR_SHAPE_IBEAM,
+ TERMINAL_CURSOR_SHAPE_UNDERLINE
+} TerminalCursorShape;
+
struct _TerminalPreferencesClass
{
GObjectClass __parent__;
Modified: terminal/trunk/terminal/terminal-screen.c
===================================================================
--- terminal/trunk/terminal/terminal-screen.c 2009-07-03 15:32:32 UTC (rev 30187)
+++ terminal/trunk/terminal/terminal-screen.c 2009-07-03 17:56:21 UTC (rev 30188)
@@ -93,6 +93,7 @@
static void terminal_screen_update_font (TerminalScreen *screen);
static void terminal_screen_update_misc_bell (TerminalScreen *screen);
static void terminal_screen_update_misc_cursor_blinks (TerminalScreen *screen);
+static void terminal_screen_update_misc_cursor_shape (TerminalScreen *screen);
static void terminal_screen_update_misc_mouse_autohide (TerminalScreen *screen);
static void terminal_screen_update_scrolling_bar (TerminalScreen *screen);
static void terminal_screen_update_scrolling_lines (TerminalScreen *screen);
@@ -284,6 +285,7 @@
"swapped-signal::notify::font-name", G_CALLBACK (terminal_screen_update_font), screen,
"swapped-signal::notify::misc-bell", G_CALLBACK (terminal_screen_update_misc_bell), screen,
"swapped-signal::notify::misc-cursor-blinks", G_CALLBACK (terminal_screen_update_misc_cursor_blinks), screen,
+ "swapped-signal::notify::misc-cursor-shape", G_CALLBACK (terminal_screen_update_misc_cursor_shape), screen,
"swapped-signal::notify::misc-mouse-autohide", G_CALLBACK (terminal_screen_update_misc_mouse_autohide), screen,
"swapped-signal::notify::scrolling-bar", G_CALLBACK (terminal_screen_update_scrolling_bar), screen,
"swapped-signal::notify::scrolling-lines", G_CALLBACK (terminal_screen_update_scrolling_lines), screen,
@@ -301,6 +303,7 @@
terminal_screen_update_font (screen);
terminal_screen_update_misc_bell (screen);
terminal_screen_update_misc_cursor_blinks (screen);
+ terminal_screen_update_misc_cursor_shape (screen);
terminal_screen_update_misc_mouse_autohide (screen);
terminal_screen_update_scrolling_bar (screen);
terminal_screen_update_scrolling_lines (screen);
@@ -713,6 +716,37 @@
static void
+terminal_screen_update_misc_cursor_shape (TerminalScreen *screen)
+{
+#if VTE_CHECK_VERSION (0, 19, 1)
+ TerminalCursorShape val;
+ VteTerminalCursorShape shape = VTE_CURSOR_SHAPE_BLOCK;
+
+ g_object_get (G_OBJECT (screen->preferences), "misc-cursor-shape", &val, NULL);
+
+ switch (val)
+ {
+ case TERMINAL_CURSOR_SHAPE_BLOCK:
+ break;
+
+ case TERMINAL_CURSOR_SHAPE_IBEAM:
+ shape = VTE_CURSOR_SHAPE_IBEAM;
+ break;
+
+ case TERMINAL_CURSOR_SHAPE_UNDERLINE:
+ shape = VTE_CURSOR_SHAPE_UNDERLINE;
+ break;
+
+ default:
+ terminal_assert_not_reached ();
+ }
+
+ vte_terminal_set_cursor_shape (VTE_TERMINAL (screen->terminal), shape);
+#endif
+}
+
+
+static void
terminal_screen_update_misc_mouse_autohide (TerminalScreen *screen)
{
gboolean bval;
More information about the Xfce4-commits
mailing list