RE: clipboard pasted text highlighting broken?



Hmm,,, I see what your saying.  However, if I understand you correctly, I
may have found a hack that works but shouldn't.  If I insert the following
line;

/* Creating entry widget to input search string */
entry = gtk_entry_new();
gtk_signal_connect(GTK_OBJECT(entry), "activate",
                    GTK_SIGNAL_FUNC(find_string), GTK_WIDGET(entry));
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(entry), FALSE, FALSE, 0);
gtk_editable_paste_clipboard(GTK_EDITABLE(GTK_ENTRY(entry)));

gtk_entry_append_text(GTK_EDITABLE(GTK_ENTRY(entry)), " ");

gtk_editable_select_region(GTK_EDITABLE(GTK_ENTRY(entry)), (gint) 0,
(gint) -1);
gtk_widget_show(entry);

all of the text in the gtkentry gets selected/highlighted properly!?!?!?
But wouldn't that mean it's somehow forcing the conditions mentioned below.
Havoc/Owen, does this hack make sense to either of you?



                                -- Stupid Genius

----------
From:         Havoc Pennington[SMTP:hp redhat com]
Sent:         Monday, October 16, 2000 1:48 PM
To:   Dugas, Alan
Cc:   gtk-app-devel-list gnome org; gtk-list gnome org
Subject:      Re: clipboard pasted text highlighting broken?


"Dugas, Alan" <alan dugas analog com> writes:  
/* Creating entry widget to input search string */
entry = gtk_entry_new();
gtk_signal_connect(GTK_OBJECT(entry), "activate",
                    GTK_SIGNAL_FUNC(find_string), GTK_WIDGET(entry));
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(entry), FALSE, FALSE, 0);
gtk_editable_paste_clipboard(GTK_EDITABLE(GTK_ENTRY(entry)));
gtk_editable_select_region(GTK_EDITABLE(GTK_ENTRY(entry)), (gint) 0,
(gint) -1);
gtk_widget_show(entry);


There are a couple problems with this code:

 a) you can't paste from the clipboard until the entry is realized,
    because the entry won't receive the selection-related events

 b) paste_clipboard is asynchronous; what happens immediately is that 
    GTK requests the data from the clipboard, then sometime later
    after the event loop runs the data is actually received and 
    inserted

So maybe what you want to do instead is connect_after() to the
selection_received signal; this signal is emitted when the clipboard
data actually arrives, and its default handler inserts the text, so if
you connect_after() your code will run after the text is inserted.  Be
careful not to rely on receiving the selection after requesting it;
the app that owns it could crash, for example.

Havoc

_______________________________________________
gtk-list mailing list
gtk-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-list





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]