all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Fran Litterio" <flitterio@gmail.com>
Cc: Drew Adams <drew.adams@oracle.com>
Subject: Re: Patch to fix frame positioning with negative top/left values onWindows
Date: Sat, 1 Apr 2006 11:22:09 -0500	[thread overview]
Message-ID: <a5b589a70604010822y20016dc1hc955a0bed9cfe889@mail.gmail.com> (raw)
In-Reply-To: <DNEMKBNJBGPAOPIJOOICMEEPDEAA.drew.adams@oracle.com>

I just checked the CVS archive, and my patch has not been applied. 
I've been running with it for well over a year with no negative
side-effects. I would like to see it applied.
--
Fran Litterio

On 4/1/06, Drew Adams <drew.adams@oracle.com> wrote:
> I've been using a 2005-06-26 CVS snapshot on Windows that had this bug. I
> thought that this had been fixed since that snapshot. I just tried a
> 2006-03-20 snapshot on Windows, however, and the same bug is still there.
>
> Did Fran's patch never get applied, or doesn't it work? His patch dates from
> January of 2005 - soon to be a year and a half! The bug symptoms are the
> same as before. See thread "Improved patch to fix frame positioning bug on
> Windows" from 2005-01-14.
>
>     -----Original Message-----
>     From: emacs-devel-bounces+drew.adams=oracle.com@gnu.org
>     [mailto:emacs-devel-bounces+drew.adams=oracle.com@gnu.org]On Behalf Of
>     Francis Litterio
>     Sent: Thursday, July 07, 2005 9:24 AM
>     To: emacs-devel@gnu.org
>     Cc: help-emacs-windows@gnu.org
>     Subject: Patch to fix frame positioning with negative top/left values
>     onWindows
>
>     Emacs developers,
>
>     This patch to the CVS Emacs sources fixes the way that function
>     x_calc_absolute_position() accounts for the Windows-drawn borders around
>     a frame when converting a negative 'top or 'left parameter into the
>     equivalent positive value.
>
>     I have submitted this patch before, but RMS told me that the FSF needed
>     a copyright assignment from me before it could applied.  The FSF now has
>     mysigned the copyright assignment, so please let me know if there's any
>     problem with this patch.  I've been running Emacs with it for some
>     months with no problems.
>     --
>     Francis Litterio
>     franl <at> world . std . com
>
>
>     diff -w -u -u -w -r1.228 w32term.c
>     --- w32term.c       4 Jul 2005 16:06:37 -0000       1.228
>     +++ w32term.c       7 Jul 2005 16:19:39 -0000
>     @@ -5438,17 +5438,58 @@
>      {
>        int flags = f->size_hint_flags;
>
>     -  /* Treat negative positions as relative to the leftmost bottommost
>     +  /* left_right_borders_width holds the sum of the widths of
>     the frame's left
>     +     and right borders (in pixels) drawn by Windows. */
>     +
>     +  unsigned int left_right_borders_width = 8;   /* A sensible
>     default value. */
>     +
>     +  /* top_bottom_borders_height holds the sum of the heights of
>     the frame's top and
>     +     bottom borders (in pixels) drawn by Windows. */
>     +
>     +  unsigned int top_bottom_borders_height = 32;  /* A sensible
>     default value. */
>     +
>     +  /* Now obtain the actual values of the above two variables.
>     If we fail to
>     +     obtain the actual values, we will use the defaults
>     assigned above.  We compute
>     +     the border width (height) by subtracting the width
>     (height) of the frame's
>     +     client area from the width (height) of the frame's entire window.
>     +  */
>     +
>     +  WINDOWPLACEMENT wp = { 0 };
>     +
>     +  BOOL status = GetWindowPlacement (FRAME_W32_WINDOW (f), &wp);
>     +
>     +  if (status != FALSE)
>     +  {
>     +      RECT client_rect = { 0 };
>     +
>     +      status = GetClientRect (FRAME_W32_WINDOW (f), &client_rect);
>     +
>     +      if (status != FALSE)
>     +      {
>     +     left_right_borders_width =
>     +         (wp.rcNormalPosition.right - wp.rcNormalPosition.left) -
>     +         (client_rect.right - client_rect.left);
>     +
>     +     top_bottom_borders_height =
>     +         (wp.rcNormalPosition.bottom - wp.rcNormalPosition.top) -
>     +         (client_rect.bottom - client_rect.top);
>     +      }
>     +  }
>     +
>     +  /* Treat negative positions as relative to the rightmost bottommost
>           position that fits on the screen.  */
>        if (flags & XNegative)
>          f->left_pos = (FRAME_W32_DISPLAY_INFO (f)->width
>                    - FRAME_PIXEL_WIDTH (f)
>     -              + f->left_pos);
>     +              + f->left_pos
>     +              - (left_right_borders_width - 1));
>
>        if (flags & YNegative)
>          f->top_pos = (FRAME_W32_DISPLAY_INFO (f)->height
>                   - FRAME_PIXEL_HEIGHT (f)
>     -             + f->top_pos);
>     +             + f->top_pos
>     +                  - (top_bottom_borders_height - 1));
>     +
>        /* The left_pos and top_pos
>           are now relative to the top and left screen edges,
>           so the flags should correspond.  */
>
>
>
>     _______________________________________________
>     Emacs-devel mailing list
>     Emacs-devel@gnu.org
>     http://lists.gnu.org/mailman/listinfo/emacs-devel
>
>

  reply	other threads:[~2006-04-01 16:22 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-07 16:23 Patch to fix frame positioning with negative top/left values on Windows Francis Litterio
2005-07-09  0:30 ` Francis Litterio
2005-07-09  8:07   ` Jason Rumney
2005-07-09 15:16     ` Re: Patch to fix frame positioning with negative top/leftvalues " Drew Adams
2005-07-09 19:38       ` Jason Rumney
2005-07-10  1:17         ` Francis Litterio
2005-07-10  5:19       ` Richard M. Stallman
2006-04-01  7:44 ` Patch to fix frame positioning with negative top/left values onWindows Drew Adams
2006-04-01 16:22   ` Fran Litterio [this message]
2006-04-02 20:38     ` Richard Stallman
2006-04-03  1:23       ` Fran Litterio

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=a5b589a70604010822y20016dc1hc955a0bed9cfe889@mail.gmail.com \
    --to=flitterio@gmail.com \
    --cc=drew.adams@oracle.com \
    /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.