[gimp] app: Disable history buffer via use of gimprc option
- From: Alexia Death <alexiade src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Disable history buffer via use of gimprc option
- Date: Sun, 20 Dec 2009 16:46:29 +0000 (UTC)
commit dbf844c012894166e312470f0d98560d5e426613
Author: Alexia Death <alexiadeath gmail com>
Date: Sun Dec 20 18:36:40 2009 +0200
app: Disable history buffer via use of gimprc option
Adds non-UI option to disable the use of often buggy history buffer.
This option defaults to false, since a lot of device/X/GDK combos are broken
and the resulting stroke often actually looks better without history events.
Put (use-event-history yes) in gimprc if you want more events and possibly bugs.
app/config/gimpdisplayconfig.c | 18 +++++++++++++++++-
app/config/gimpdisplayconfig.h | 1 +
app/config/gimprc-blurbs.h | 3 +++
app/display/gimpdisplayshell-callbacks.c | 1 +
4 files changed, 22 insertions(+), 1 deletions(-)
---
diff --git a/app/config/gimpdisplayconfig.c b/app/config/gimpdisplayconfig.c
index 21aeef2..29c3d5e 100644
--- a/app/config/gimpdisplayconfig.c
+++ b/app/config/gimpdisplayconfig.c
@@ -40,6 +40,7 @@
#define DEFAULT_ACTIVATE_ON_FOCUS TRUE
#define DEFAULT_MONITOR_RESOLUTION 96.0
#define DEFAULT_MARCHING_ANTS_SPEED 200
+#define DEFAULT_USE_EVENT_HISTORY FALSE
enum
{
@@ -73,7 +74,8 @@ enum
PROP_ACTIVATE_ON_FOCUS,
PROP_SPACE_BAR_ACTION,
PROP_XOR_COLOR,
- PROP_ZOOM_QUALITY
+ PROP_ZOOM_QUALITY,
+ PROP_USE_EVENT_HISTORY
};
@@ -262,6 +264,12 @@ gimp_display_config_class_init (GimpDisplayConfigClass *klass)
GIMP_TYPE_ZOOM_QUALITY,
GIMP_ZOOM_QUALITY_HIGH,
GIMP_PARAM_STATIC_STRINGS);
+
+ GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_EVENT_HISTORY,
+ "use-event-history",
+ DEFAULT_USE_EVENT_HISTORY_BLURB,
+ DEFAULT_USE_EVENT_HISTORY,
+ GIMP_PARAM_STATIC_STRINGS);
}
static void
@@ -407,6 +415,10 @@ gimp_display_config_set_property (GObject *object,
display_config->zoom_quality = g_value_get_enum (value);
break;
+ case PROP_USE_EVENT_HISTORY:
+ display_config->use_event_history = g_value_get_boolean (value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -514,6 +526,10 @@ gimp_display_config_get_property (GObject *object,
g_value_set_enum (value, display_config->zoom_quality);
break;
+ case PROP_USE_EVENT_HISTORY:
+ g_value_set_boolean (value, display_config->use_event_history);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
diff --git a/app/config/gimpdisplayconfig.h b/app/config/gimpdisplayconfig.h
index 39e9ada..ca184f4 100644
--- a/app/config/gimpdisplayconfig.h
+++ b/app/config/gimpdisplayconfig.h
@@ -73,6 +73,7 @@ struct _GimpDisplayConfig
GimpSpaceBarAction space_bar_action;
GimpRGB xor_color;
GimpZoomQuality zoom_quality;
+ gboolean use_event_history;
};
struct _GimpDisplayConfigClass
diff --git a/app/config/gimprc-blurbs.h b/app/config/gimprc-blurbs.h
index 3b4fdda..be1db15 100644
--- a/app/config/gimprc-blurbs.h
+++ b/app/config/gimprc-blurbs.h
@@ -461,5 +461,8 @@ N_("When enabled, pressing F1 will open the help browser.")
#define ZOOM_QUALITY_BLURB \
"There's a tradeoff between speed and quality of the zoomed-out display."
+#define DEFAULT_USE_EVENT_HISTORY_BLURB \
+"Bugs in event history buffer are frequent so in case of curor " \
+"offset problems turning it off helps."
#endif /* __GIMP_RC_BLURBS_H__ */
diff --git a/app/display/gimpdisplayshell-callbacks.c b/app/display/gimpdisplayshell-callbacks.c
index f9345a0..60600ba 100644
--- a/app/display/gimpdisplayshell-callbacks.c
+++ b/app/display/gimpdisplayshell-callbacks.c
@@ -1336,6 +1336,7 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas,
*/
if ((gimp_tool_control_get_motion_mode (active_tool->control) ==
GIMP_MOTION_MODE_EXACT) &&
+ shell->display->config->use_event_history &&
gdk_device_get_history (mevent->device, mevent->window,
shell->last_read_motion_time + 1,
mevent->time - 1,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]