[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xterm.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xterm.c |
Date: |
Fri, 21 Mar 2003 17:56:53 -0500 |
Index: emacs/src/xterm.c
diff -c emacs/src/xterm.c:1.783 emacs/src/xterm.c:1.784
*** emacs/src/xterm.c:1.783 Fri Mar 21 16:47:45 2003
--- emacs/src/xterm.c Fri Mar 21 17:56:50 2003
***************
*** 3474,3572 ****
/* Mouse clicks and mouse movement. Rah. */
- /* Given a pixel position (PIX_X, PIX_Y) on frame F, return glyph
- co-ordinates in (*X, *Y). Set *BOUNDS to the rectangle that the
- glyph at X, Y occupies, if BOUNDS != 0. If NOCLIP is non-zero, do
- not force the value into range. */
-
- void
- pixel_to_glyph_coords (f, pix_x, pix_y, x, y, bounds, noclip)
- FRAME_PTR f;
- register int pix_x, pix_y;
- register int *x, *y;
- XRectangle *bounds;
- int noclip;
- {
- /* Arrange for the division in PIXEL_TO_CHAR_COL etc. to round down
- even for negative values. */
- if (pix_x < 0)
- pix_x -= FONT_WIDTH ((f)->output_data.x->font) - 1;
- if (pix_y < 0)
- pix_y -= (f)->output_data.x->line_height - 1;
-
- pix_x = PIXEL_TO_CHAR_COL (f, pix_x);
- pix_y = PIXEL_TO_CHAR_ROW (f, pix_y);
-
- if (bounds)
- {
- bounds->width = FONT_WIDTH (f->output_data.x->font);
- bounds->height = f->output_data.x->line_height;
- bounds->x = CHAR_TO_PIXEL_COL (f, pix_x);
- bounds->y = CHAR_TO_PIXEL_ROW (f, pix_y);
- }
-
- if (!noclip)
- {
- if (pix_x < 0)
- pix_x = 0;
- else if (pix_x > FRAME_WINDOW_WIDTH (f))
- pix_x = FRAME_WINDOW_WIDTH (f);
-
- if (pix_y < 0)
- pix_y = 0;
- else if (pix_y > f->height)
- pix_y = f->height;
- }
-
- *x = pix_x;
- *y = pix_y;
- }
-
-
- /* Given HPOS/VPOS in the current matrix of W, return corresponding
- frame-relative pixel positions in *FRAME_X and *FRAME_Y. If we
- can't tell the positions because W's display is not up to date,
- return 0. */
-
- int
- glyph_to_pixel_coords (w, hpos, vpos, frame_x, frame_y)
- struct window *w;
- int hpos, vpos;
- int *frame_x, *frame_y;
- {
- int success_p;
-
- xassert (hpos >= 0 && hpos < w->current_matrix->matrix_w);
- xassert (vpos >= 0 && vpos < w->current_matrix->matrix_h);
-
- if (display_completed)
- {
- struct glyph_row *row = MATRIX_ROW (w->current_matrix, vpos);
- struct glyph *glyph = row->glyphs[TEXT_AREA];
- struct glyph *end = glyph + min (hpos, row->used[TEXT_AREA]);
-
- *frame_y = row->y;
- *frame_x = row->x;
- while (glyph < end)
- {
- *frame_x += glyph->pixel_width;
- ++glyph;
- }
-
- success_p = 1;
- }
- else
- {
- *frame_y = *frame_x = 0;
- success_p = 0;
- }
-
- *frame_y = WINDOW_TO_FRAME_PIXEL_Y (w, *frame_y);
- *frame_x = WINDOW_TO_FRAME_PIXEL_X (w, *frame_x);
- return success_p;
- }
-
-
/* Prepare a mouse-event in *RESULT for placement in the input queue.
If the event is a button press, then note that we have grabbed
--- 3474,3479 ----
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/04
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/08
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/09
- [Emacs-diffs] Changes to emacs/src/xterm.c, Kim F. Storm, 2003/03/12
- [Emacs-diffs] Changes to emacs/src/xterm.c, Andreas Schwab, 2003/03/12
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/14
- [Emacs-diffs] Changes to emacs/src/xterm.c, Kim F. Storm, 2003/03/16
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/17
- [Emacs-diffs] Changes to emacs/src/xterm.c, Kim F. Storm, 2003/03/21
- [Emacs-diffs] Changes to emacs/src/xterm.c, Kim F. Storm, 2003/03/21
- [Emacs-diffs] Changes to emacs/src/xterm.c,
Kim F. Storm <=
- [Emacs-diffs] Changes to emacs/src/xterm.c, Jan Djärv, 2003/03/22
- [Emacs-diffs] Changes to emacs/src/xterm.c, Stefan Monnier, 2003/03/28
- [Emacs-diffs] Changes to emacs/src/xterm.c, Stefan Monnier, 2003/03/28
- [Emacs-diffs] Changes to emacs/src/xterm.c, Stefan Monnier, 2003/03/28
- [Emacs-diffs] Changes to emacs/src/xterm.c, Kim F. Storm, 2003/03/31