In fact, this patch is broken, it prevents me from cut & pasting text
from other apps...
Hmm.
On Fri, 2003-05-02 at 14:42, Ettore Perazzoli wrote:
> This one I am not 100% sure about.
>
> Basically, the problem is, if the gtk-entry-select-on-focus GtkSetting
> is set, tabbing around in the composer will (with my e-entry patch)
> select the text in the to/cc/bcc fields. On the other hand, when you
> tab from the subject field into the HTML widget nothing happens, you can
> be left with the subject text still selected while the cursor is in the
> HTML widget, which is kinda disconcerting.
>
> This patch makes GtkHTML clear the primary selection if it gets tabbed
> into, when gtk-entry-select-on-focus is set (and only if GtkHTML doesn't
> already own the selection at that point). This way we make the HTML
> widget consistent with the entries in the fact that it owns the
> selection when you tab in -- although in this case it owns an empty
> selection instead of selecting the whole text (which would be obviously
> wrong for the text editor).
>
> What do you think?
>
> (BTW, this is a problem that GtkTextView has too.)
>
> -- Ettore
>
>
> ______________________________________________________________________
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/gnome/gtkhtml/src/ChangeLog,v
> retrieving revision 1.1786
> diff -u -p -r1.1786 ChangeLog
> --- ChangeLog 29 Apr 2003 20:16:04 -0000 1.1786
> +++ ChangeLog 2 May 2003 18:35:58 -0000
> @@ -1,3 +1,9 @@
> +2003-05-02 Ettore Perazzoli <ettore ximian com>
> +
> + * gtkhtml.c (focus_in_event): If the gtk-entry-select-on-focus
> + GtkSetting is set and we are not owning the primary selection,
> + clear it.
> +
> 2003-04-29 Larry Ewing <lewing ximian com>
>
> * htmltext.c (calc_word_width): walk the string in our own loop
> Index: gtkhtml.c
> ===================================================================
> RCS file: /cvs/gnome/gtkhtml/src/gtkhtml.c,v
> retrieving revision 1.506
> diff -u -p -r1.506 gtkhtml.c
> --- gtkhtml.c 29 Apr 2003 16:02:49 -0000 1.506
> +++ gtkhtml.c 2 May 2003 18:35:58 -0000
> @@ -1581,8 +1581,8 @@ focus_in_event (GtkWidget *widget,
> GdkEventFocus *event)
> {
> GtkHTML *html = GTK_HTML (widget);
> + gboolean select_on_focus;
>
> - /* printf ("focus in\n"); */
> if (!html->iframe_parent) {
> GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS);
> html_engine_set_focus (html->engine, TRUE);
> @@ -1594,6 +1594,18 @@ focus_in_event (GtkWidget *widget,
>
> html->priv->need_im_reset = TRUE;
> gtk_im_context_focus_in (html->priv->im_context);
> +
> + g_object_get (G_OBJECT (gtk_widget_get_settings (widget)),
> + "gtk-entry-select-on-focus",
> + &select_on_focus,
> + NULL);
> +
> + if (select_on_focus) {
> + GtkClipboard *clipboard = gtk_clipboard_get (GDK_SELECTION_PRIMARY);
> +
> + if (gtk_clipboard_get_owner (clipboard) != G_OBJECT (widget->window))
> + gtk_clipboard_clear (clipboard);
> + }
>
> return FALSE;
> }
Attachment:
signature.asc
Description: This is a digitally signed message part