From: Ola Nilsson <ola.nilsson@gmail.com>
To: martin rudalics <rudalics@gmx.at>
Cc: Lars Magne Ingebrigtsen <larsi@gnus.org>,
28605@debbugs.gnu.org, Kaushal <kaushal.modi@gmail.com>
Subject: bug#28605: 26.0.60; Part of leftmost character hidden
Date: Tue, 3 Oct 2017 14:12:26 +0200 [thread overview]
Message-ID: <CAKyOKyG2LuF=op8KhivkwkfMMHDk_19e0MDhV8vd+HSxu5X1Gg@mail.gmail.com> (raw)
In-Reply-To: <59D35549.6030905@gmx.at>
On Tue, Oct 3, 2017 at 11:15 AM, martin rudalics <rudalics@gmx.at> wrote:
>> If the frame contains three side-by-side windows and scroll bars on
>> the right I expect to see (from left to right):
>>
>> frame border
>> left fringe for window one
>> window one
>> right fringe for window one
>> scroll bar for window one
>> right fringe for window two
>> window two
>> left fringe for window two
>> scroll bar for window two
>> right fringe for window three
>> window three
>> left fringe for window three
>> scroll bar for window three
>> frame border
>>
>> Of all the fringes, only the left fringe of window one is visible.
>> Using scroll bars on the left, only the right fringe of window three
>> is visible.
>> In both cases, characters that are next to non-visible/hidden fringes
>> are partially hidden.
>> I'm attaching two screenshots that should show this.
>
> Thanks for the details. From your initial screenshot it was not clear
> to me that the effect is really that bad.
>
>> I bit the bullet and did a git bisect:
>>
>> 36cf0791ba75ee16dfbedfe437567ec6dd945b8a is the first bad commit
>> commit 36cf0791ba75ee16dfbedfe437567ec6dd945b8a
>> Author: Lars Ingebrigtsen <larsi@gnus.org>
>> Date: Sun Jul 16 16:50:57 2017 +0200
>> Remove usage of the GDK_SCALE variable
>>
>> * src/gtkutil.c (xg_get_gdk_scale): Remove.
>> (xg_get_default_scrollbar_height)
>> (xg_get_default_scrollbar_width): Pass in a frame to check for
>> scaling.
>> (xg_frame_set_char_size): Use the API for querying scale
>> instead of looking at the GDK_SCALE variable.
>> (xg_get_default_scrollbar_width): Ditto.
>> (xg_get_default_scrollbar_height): Ditto.
>> (xg_update_scrollbar_pos): Ditto.
>>
>> * src/xfns.c (x_set_scroll_bar_default_height): Pass in the
>> frame to get the width.
>
> Great. Lars, how should we proceed from here?
>
> (1) Revert that commit.
>
> (2) Revert the call of gtk_widget_get_scale_factor only.
>
> (3) Try to fix the build with your change in place.
>
> (4) Provide some option so that users can either use your approach or
> Jan's. The default should prefer Jan's setup to avoid that users
> like Ola have to go through this again.
>
>> I also played with the dividers and horizontal scroll bars.
>>
>> The horizontal scroll bars are not visibla at all with scaling on.
>
> Apparently, the horizontal scroll bar code does not handle scaling. If
> we fix the current problem, maybe you could help me fix that one too.
>
>> Dividers on the right fixed the hidden character problem but not the
>> hidden fringes,
>
> Yes. IMHO it's because the scroll bar clearing code hides the dividers
> instead of the text. If you customize dividers to a sufficiently large
> width you should be able to make the entire text visible and even parts
> of the dividers (on the left side of a window, only - the right sides
> will remain obscured as before).
>
>> I attach some screenshots of this as well.
>
> Very informative, thanks. One thing that stupefies me about these
> screenshots is that the menu and toolbar items are smaller in
> horizontal-scrollbars-no-dividers.png than in with-hidpi-scaling.png.
>
>> This is with emacs -Q --no-x-resources, dividers off, horizontal
>> scrollbars off.
>>
>> frame pixel: 2034 x 466 cols/lines: 226 x 25 units: 9 x 18
> [...]
>> height header-line: 0 mode-line: 0 divider: 0
>
> All these values are completely as expected so the problem must be
> confined to this x_clear_area call in xg_update_scrollbar_pos in
> gtkutil.c
>
> /* Clear under old scroll bar position. */
> oldw += (scale - 1) * oldw;
> oldx -= (scale - 1) * oldw;
> x_clear_area (f, oldx, oldy, oldw, oldh);
>
> where the value of scale is now obtained via
>
> int scale = xg_get_scale (f);
>
> If you replace the latter by the old
>
> int scale = xg_get_gdk_scale ();
>
> does your problem go away? If so, then it would be interesting how the
> values returned by xg_get_scale differ with gtk_widget_get_scale_factor
> and xg_get_gdk_scale called.
Made no difference what I can see, except a lot of messages :
(emacs:2302): Gtk-CRITICAL **: gtk_distribute_natural_allocation:
assertion 'extra_space >= 0' failed
I tested with dividers and horizontal scrollbars with the same results
as before.
--
Ola Nilsson
next prev parent reply other threads:[~2017-10-03 12:12 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-26 9:52 bug#28605: 26.0.60; Part of leftmost character hidden Ola Nilsson
2017-09-27 8:12 ` martin rudalics
2017-09-29 7:45 ` Ola Nilsson
2017-09-29 8:36 ` martin rudalics
2017-09-29 10:46 ` Ola Nilsson
2017-09-29 18:18 ` martin rudalics
2017-10-02 9:18 ` Ola Nilsson
2017-10-03 9:15 ` martin rudalics
2017-10-03 9:28 ` Lars Ingebrigtsen
2017-10-03 12:12 ` Ola Nilsson [this message]
2017-10-03 13:08 ` Robert Pluim
2017-10-03 15:49 ` Ola Nilsson
2017-10-03 16:58 ` Ola Nilsson
2017-10-04 6:48 ` Ola Nilsson
2017-10-04 9:05 ` martin rudalics
2017-10-04 9:05 ` martin rudalics
2017-10-04 9:59 ` Ola Nilsson
2017-10-04 11:56 ` Robert Pluim
2017-10-05 8:10 ` martin rudalics
2017-10-05 9:42 ` Robert Pluim
2017-10-05 12:46 ` Robert Pluim
2017-10-06 8:18 ` martin rudalics
2017-10-06 8:37 ` Robert Pluim
2017-10-06 9:35 ` martin rudalics
2017-10-06 11:50 ` Robert Pluim
2017-10-07 8:08 ` martin rudalics
2017-10-07 11:53 ` Lars Ingebrigtsen
2017-10-09 8:00 ` martin rudalics
2017-10-09 8:25 ` Lars Ingebrigtsen
2017-10-09 9:16 ` Robert Pluim
2017-10-09 12:21 ` martin rudalics
2017-10-08 9:51 ` Robert Pluim
2017-10-09 8:00 ` martin rudalics
2017-10-09 8:26 ` Lars Ingebrigtsen
2017-10-09 12:22 ` martin rudalics
2017-10-09 13:37 ` Robert Pluim
2017-10-10 8:13 ` martin rudalics
2017-10-10 8:44 ` Robert Pluim
2017-10-10 9:16 ` martin rudalics
2017-10-10 9:31 ` Eli Zaretskii
2017-10-10 9:54 ` Robert Pluim
2017-10-10 11:11 ` Robert Pluim
2017-10-10 13:26 ` martin rudalics
2017-10-10 14:00 ` Robert Pluim
2017-10-11 8:32 ` martin rudalics
2017-10-11 8:37 ` Robert Pluim
2017-10-09 14:18 ` Lars Ingebrigtsen
2017-10-10 8:14 ` martin rudalics
2017-10-10 8:39 ` Robert Pluim
2017-10-10 9:15 ` martin rudalics
2017-10-10 9:46 ` Robert Pluim
2017-10-10 13:25 ` martin rudalics
2017-10-10 8:54 ` Lars Ingebrigtsen
2017-10-10 13:05 ` Ola Nilsson
2017-10-10 13:26 ` martin rudalics
2017-10-10 15:32 ` Robert Pluim
2017-12-15 18:16 ` martin rudalics
2017-12-18 15:58 ` Robert Pluim
2017-12-19 7:02 ` martin rudalics
2017-12-19 7:56 ` Eli Zaretskii
2017-12-19 8:10 ` Robert Pluim
2017-12-19 16:09 ` Eli Zaretskii
2017-12-20 8:53 ` martin rudalics
2020-09-04 5:05 ` Lars Ingebrigtsen
2017-10-11 6:57 ` Ola Nilsson
2017-10-11 8:32 ` martin rudalics
2017-10-11 8:49 ` Robert Pluim
2017-10-11 9:28 ` martin rudalics
2017-10-11 10:36 ` Robert Pluim
2017-10-11 13:11 ` Ola Nilsson
2017-10-12 8:04 ` martin rudalics
2017-10-12 9:31 ` Robert Pluim
2017-10-13 8:56 ` martin rudalics
2017-10-13 9:58 ` Robert Pluim
2017-10-13 12:46 ` martin rudalics
2017-10-13 13:01 ` Robert Pluim
2017-10-14 8:36 ` martin rudalics
2017-10-14 8:57 ` Robert Pluim
2017-10-14 9:21 ` martin rudalics
2017-10-16 11:41 ` Robert Pluim
2017-10-17 8:57 ` martin rudalics
2017-10-17 10:30 ` Robert Pluim
2017-10-17 13:09 ` martin rudalics
2017-10-19 12:44 ` Robert Pluim
2017-10-20 7:55 ` martin rudalics
2017-10-20 13:41 ` Robert Pluim
2017-10-21 8:04 ` martin rudalics
2017-10-23 10:01 ` Robert Pluim
2017-10-23 11:54 ` martin rudalics
2017-10-23 12:12 ` Robert Pluim
2017-10-24 9:17 ` martin rudalics
2017-10-13 16:18 ` Ola Nilsson
2017-10-14 8:36 ` martin rudalics
2017-10-06 8:18 ` martin rudalics
2017-10-06 8:52 ` Robert Pluim
2017-10-06 9:35 ` martin rudalics
2017-10-05 11:57 ` Ola Nilsson
2017-10-04 9:03 ` martin rudalics
2017-10-03 15:26 ` Kaushal Modi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKyOKyG2LuF=op8KhivkwkfMMHDk_19e0MDhV8vd+HSxu5X1Gg@mail.gmail.com' \
--to=ola.nilsson@gmail.com \
--cc=28605@debbugs.gnu.org \
--cc=kaushal.modi@gmail.com \
--cc=larsi@gnus.org \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.