From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Coordinates and Windows
Date: Thu, 16 Jul 2015 20:23:06 +0200 [thread overview]
Message-ID: <55A7F68A.3040003@gmx.at> (raw)
In-Reply-To: <83bnfc6um1.fsf@gnu.org>
> I don't see why. Having the top-left corner of the frame as the
> reference point sounds simpler and more clear to me, and allows one to
> use it in the same way in all the builds. No?
If by top-left corner you intend the top-left position of the menu bar,
or if that's absent that of the top/left tool bar, or if that's absent
too that of the internal border, or if that is absent too that of the
root window, I agree. Just that it's not all too trivial to calculate
it.
We know the size of the tool bar only after we have displayed it. This
is already a problem on Lucid, Motif, Windows. And Windows has certain
difficulties telling us the height of the menubar when it wraps. This
too is already a problem, so nothing new here. But there might be yet
unknown problems with Gtk and NS.
>> Actually, I started to look into this when I detected that it's
>> virtually impossible to position a tooltip frame via `x-show-tip' at a
>> window position obtained via `pos-visible-in-window-p' consistently on
>> all platforms.
>>
>> To illustrate how little care has been applied to this so far, consider
>> the function `window-absolute-pixel-edges'. With a maximized frame on
>> Windows XP this function returns (-4 -4 1676 964) here.
>
> I get (-8 28 1912 984) on Windows 7 and (-4 32 1916 1022) on XP, so at
> least the Y coordinate seems OK.
Just 32 pixels for title, menu, and tool bar? Here `x-frame-geometry'
tells me that they alone take 74 pixels. BTW, has Windows 7 an 8 pixel
wide border by default?
>> Apparently, this was designed for Gtk users, never really tested on
>> other platforms. But this also implies that changing things for Gtk
>> might not be a good idea.
>
> I don't follow the logic, can you elaborate why this implies what you
> think it implies? Are you saying that on GTK a maximized frame has
> some of its GTK decorations off-screen?
No, off-screen decorations are a Windows feature. What I meant is that
Gtk has some established, working features that albeit never worked on
Windows. And I'm afraid to break these features.
>> Because most programmers think (and applications work) in terms of rows
>> and columns. `window-edges' is still quite in use although it's bound
>> to provide inaccurate results in many occasions now.
>
> I'm afraid I still don't see why this requires rounding, especially if
> the results are already inaccurate. E.g., can we consider the menu
> bar a single line, and the tool bar another N lines (N is usually 1,
> but doesn't have to be). IOW, can we treat each "row" of display in
> these windows as a single line, for the purposes of counting rows? If
> not, why not?
The windmove code, for example, determined adjacency of windows from the
fact that their respective edges matched. It took me some time to
adjust the line/column calculation code to handle that in an artificial
way. I don't know how much code exists that uses similar heuristics.
martin
next prev parent reply other threads:[~2015-07-16 18:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-15 7:00 Coordinates and Windows martin rudalics
2015-07-15 14:57 ` Eli Zaretskii
2015-07-15 18:21 ` martin rudalics
2015-07-15 19:34 ` Eli Zaretskii
2015-07-16 7:14 ` martin rudalics
2015-07-16 14:32 ` Eli Zaretskii
2015-07-16 18:23 ` martin rudalics [this message]
2015-07-17 13:09 ` Eli Zaretskii
2015-07-17 13:36 ` martin rudalics
2015-07-17 14:21 ` Eli Zaretskii
2015-07-17 17:58 ` martin rudalics
2015-07-17 18:10 ` Eli Zaretskii
2015-07-18 9:03 ` martin rudalics
[not found] ` <<83wpxy6f0x.fsf@gnu.org>
2015-07-17 15:09 ` Drew Adams
2015-07-17 17:58 ` martin rudalics
2015-07-17 19:28 ` Drew Adams
2015-07-18 9:03 ` martin rudalics
2015-07-19 16:47 ` Eli Zaretskii
2015-07-20 6:42 ` martin rudalics
2015-07-20 7:04 ` martin rudalics
2015-07-20 16:15 ` Eli Zaretskii
[not found] <"<83oajd79kz.fsf"@gnu.org>
[not found] ` <"<83fv4p6wqp.fsf"@gnu.org>
[not found] ` <"<83bnfc6um1.fsf"@gnu.org>
[not found] <<55A60508.7090903@gmx.at>
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=55A7F68A.3040003@gmx.at \
--to=rudalics@gmx.at \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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.