[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/w32term.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/w32term.c |
Date: |
Fri, 21 Mar 2003 17:56:52 -0500 |
Index: emacs/src/w32term.c
diff -c emacs/src/w32term.c:1.183 emacs/src/w32term.c:1.184
*** emacs/src/w32term.c:1.183 Fri Mar 21 16:47:46 2003
--- emacs/src/w32term.c Fri Mar 21 17:56:51 2003
***************
*** 2800,2905 ****
/* 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;
- RECT *bounds;
- int noclip;
- {
- /* Support tty mode: if Vwindow_system is nil, behave correctly. */
- if (NILP (Vwindow_system))
- {
- *x = pix_x;
- *y = pix_y;
- return;
- }
-
- /* 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 (FRAME_FONT (f)) - 1;
- if (pix_y < 0)
- pix_y -= (f)->output_data.w32->line_height - 1;
-
- pix_x = PIXEL_TO_CHAR_COL (f, pix_x);
- pix_y = PIXEL_TO_CHAR_ROW (f, pix_y);
-
- if (bounds)
- {
- bounds->left = CHAR_TO_PIXEL_COL (f, pix_x);
- bounds->top = CHAR_TO_PIXEL_ROW (f, pix_y);
- bounds->right = bounds->left + FONT_WIDTH (FRAME_FONT (f)) - 1;
- bounds->bottom = bounds->top + f->output_data.w32->line_height - 1;
- }
-
- 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;
- }
-
/* Parse a button MESSAGE. The button index is returned in PBUTTON, and
the state in PUP. XBUTTON provides extra information for extended mouse
button messages. Returns FALSE if unable to parse the message. */
--- 2800,2805 ----
- [Emacs-diffs] Changes to emacs/src/w32term.c, Juanma Barranquero, 2003/03/06
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/12
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/16
- [Emacs-diffs] Changes to emacs/src/w32term.c, Jason Rumney, 2003/03/16
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/21
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/21
- [Emacs-diffs] Changes to emacs/src/w32term.c,
Kim F. Storm <=
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/23
- [Emacs-diffs] Changes to emacs/src/w32term.c, Kim F. Storm, 2003/03/31
- [Emacs-diffs] Changes to emacs/src/w32term.c, Juanma Barranquero, 2003/03/31