all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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



  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.