delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mail set sender to geda-user-bounces using -f |
X-Recipient: | geda-user AT delorie DOT com |
X-Original-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
d=gmail.com; s=20161025; | |
h=date:from:to:subject:message-id:in-reply-to:references:mime-version; | |
bh=UPPjjXJv7chjO7gjbmSEK3GKbC0i2teyDXvQ6oNzvbY=; | |
b=PqzHQTbdjUfwGLCPfzea/6vjqR3JExjUokh+KenOyPs8K/0V0HVn8YCDAz7jmXoNUk | |
pK05HFbBip8EC2OEoKPO44tHYjy+Y3G0fPwaadX2/mCch1xGCetTKrNsKeyjObQZw7Ss | |
7jrHT1Ktb6N+bJfiar5BEUlFSi1hpr7KyQ8Pt4zEZsgEDurpF9lsi5B/Sx3xbX3pYic4 | |
ZjrvURuIztnt7e/BHNKOVtDjKx/Kzh9si7MM0rziKBuW/lYtoYxnSF/7Codg7NLqcw6V | |
oFQt7QaChAHuWZgZU8Blb36U8nNmFQQxEoA6GWTXsQ6BWgUyol1DFZRJpbokPHBCq+vo | |
6VNA== | |
X-Google-DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; |
d=1e100.net; s=20161025; | |
h=x-gm-message-state:date:from:to:subject:message-id:in-reply-to | |
:references:mime-version; | |
bh=UPPjjXJv7chjO7gjbmSEK3GKbC0i2teyDXvQ6oNzvbY=; | |
b=DOWK9bzSlIDTRwQsQ77iE+zt9CkyWHi208/qgBIxJm/uL9FvEn3Tcc/70mPYBPhPww | |
8r1EMNc+eHS8cKbfMmMpysynh+3icmzPfvo026jk1tzNnGNu/CBR7lfQ5/IsIn5REuJe | |
5W+RFcujmymE8bsyMUL5t9ao4FWTbd8iz+tK3nw/EANq/Uvt3S3MQdoBsl3pwB3lUyyV | |
hLeve37wT5pM0MetmVId3YZMcjuVASk50tP6M/jEf+MBGnyjnpfrkPgL5qKqxZwxMLQ5 | |
J0rsTIHKIfv5EmrZRyaGqPDSBn4MSnQCVnJpDaJ6kJWV/B/ETaO73uZm+AcqfmBaiAwO | |
O87Q== | |
X-Gm-Message-State: | APjAAAU9W/Q2GK/PwC+1JY/f9jEbKYYuA3cRtt8qlDO8GefGOejij9dR |
k4R3kE0XgRjFsgFqghL7id/dbsEX | |
X-Google-Smtp-Source: | APXvYqwVnd4EE/NwpqHslwtv6mIh1GoMty4cQOe9iM+tbK3M2hZpqU0n8HvwBRovpk1RQuVd8sRifw== |
X-Received: | by 2002:a2e:810d:: with SMTP id d13mr18893367ljg.113.1579675725990; |
Tue, 21 Jan 2020 22:48:45 -0800 (PST) | |
Date: | Wed, 22 Jan 2020 09:48:41 +0300 |
From: | "dmn (graahnul DOT grom AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> |
To: | geda-user AT delorie DOT com |
Subject: | Re: [geda-user] lepton 1.9.9 problems - SOLVED |
Message-ID: | <20200122094841.5c348184@demon> |
In-Reply-To: | <c5b79ff4-d532-1bf4-f6c0-29068015461e@fastmail.com> |
References: | <082a996c-2bf3-3fdb-a67b-06aa17c5bcb8 AT fastmail DOT com> |
<20200119072337 DOT 391fdafa AT demon> | |
<2d33154d-7c71-a868-580a-ff292db6ffff AT fastmail DOT com> | |
<20200121022941 DOT 1916b69b AT demon> | |
<c5b79ff4-d532-1bf4-f6c0-29068015461e AT fastmail DOT com> | |
X-Mailer: | Claws Mail 3.17.4 (GTK+ 2.24.32; amd64-portbld-freebsd11.3) |
MIME-Version: | 1.0 |
Reply-To: | geda-user AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | geda-user AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
--MP_/xX5Od/0K134fY0gfm7x6nXg Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Girvin, > When I did try lepton-schematic's F-P to print my schematic, it > crashed. It was reported in [1] and fixed in [2] and [3] back in October, though I could not reproduce it on my systems (including Slackware 14.2). A patch that can be applied against 1.9.9 release sources is in attachment. > BTW: Another annoying thing I noticed about lepton-schematic is that > the additional windows (i.e. status and page manager) do not honor > window focus - they stay on top, which makes it difficult to work in > the schematic editing main window without moving them aside. I do > believe that gEDA 1.8 did honor window focus and the same windows > went to the background when focus was changed to the main window. > Fixing that could be an enhancement for a subsequent lepton release. On the contrary, I prefer those dialogs to be above the main window. It's possible to implement the behavior you've described (I've just tried it), but I think it should be controlled by some configuration parameter (since already two persons have different opinions on the subject). Thank you for testing. [1] https://github.com/lepton-eda/lepton-eda/issues/480 [2] https://github.com/lepton-eda/lepton-eda/pull/482 [3] https://github.com/lepton-eda/lepton-eda/pull/485 Regards, Dmitry. --MP_/xX5Od/0K134fY0gfm7x6nXg Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=issue480fix.diff diff --git a/schematic/src/gschem_log_widget.c b/schematic/src/gschem_log_widget.c index f4ebd81b3..b39c10ae2 100644 --- a/schematic/src/gschem_log_widget.c +++ b/schematic/src/gschem_log_widget.c @@ -41,8 +41,8 @@ create_text_buffer(); static void log_message (GschemLogWidgetClass *klass, const gchar *message, const gchar *style); -static void -scroll_to_bottom (GtkTextBuffer* buffer, GschemLogWidget* widget); +static gboolean +scroll_to_bottom (gpointer p); static void log_window_clear (GtkMenuItem* item, gpointer data); @@ -147,7 +147,11 @@ changed_cb (GtkTextBuffer *buffer, GschemLogWidget *widget) g_return_if_fail (widget != NULL); g_return_if_fail (widget->viewer != NULL); - scroll_to_bottom (buffer, widget); + /* There is known issue with GtkTextView widget: + * to set scroll position in the text view properly, + * it should be done in an idle handler + */ + g_idle_add (&scroll_to_bottom, widget); } @@ -314,42 +318,30 @@ gschem_log_widget_init (GschemLogWidget *widget) G_CALLBACK (&populate_popup_menu), widget); - - scroll_to_bottom (klass->buffer, widget); - } /* instance_init() */ /*! \brief scroll to the bottom of the log window + * \note Should be executed as an idle handler (g_idle_add()) * - * \param [in] buffer The text buffer - * \param [in] widget The log widget + * \param [in] p The log widget */ -static void -scroll_to_bottom (GtkTextBuffer* buffer, GschemLogWidget* widget) +static gboolean +scroll_to_bottom (gpointer p) { - g_return_if_fail (buffer != NULL); - g_return_if_fail (widget != NULL); - g_return_if_fail (widget->viewer != NULL); + GschemLogWidget* widget = (GschemLogWidget*) p; + g_return_val_if_fail (widget != NULL, FALSE); + g_return_val_if_fail (widget->viewer != NULL, FALSE); - /* gtk_text_view_scroll_to_iter() - * relies upon the results of computations - * performed in an idle handler. - * Give that handler an opportunity to run - - * process pending events before the call, - so that - * the view will be scrolled correctly (to the bottom). - * - * \note using gtk_text_view_scroll_to_mark() instead - * of gtk_text_view_scroll_to_iter() (as suggested in the - * documentation of gtk_text_view_scroll_to_iter() doesn't help. - */ - while (gtk_events_pending()) - gtk_main_iteration(); + GschemLogWidgetClass* cls = GSCHEM_LOG_WIDGET_GET_CLASS (widget); + g_return_val_if_fail (cls != NULL, FALSE); + + GtkTextBuffer* buffer = cls->buffer; + g_return_val_if_fail (buffer != NULL, FALSE); GtkTextIter iter; gtk_text_buffer_get_end_iter (buffer, &iter); - gtk_text_view_scroll_to_iter (widget->viewer, &iter, 0.0, /* within_margin */ @@ -357,6 +349,8 @@ scroll_to_bottom (GtkTextBuffer* buffer, GschemLogWidget* widget) 0.0, /* xalign: 0 => left */ 1.0); /* yalign: 1 => bottom */ + return FALSE; /* execute only once when called as an idle handler */ + } /* scroll_to_bottom() */ --MP_/xX5Od/0K134fY0gfm7x6nXg--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |