[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[patch #1768] [Patch #1768] Adds non-std. resolution support and ncurses
From: |
noreply |
Subject: |
[patch #1768] [Patch #1768] Adds non-std. resolution support and ncursesw bug-fixes |
Date: |
Fri, 08 Aug 2003 16:05:30 -0400 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3) Gecko/20030313 |
Patch #1768 has been updated.
Project:
Category: None
Status: Open
Summary: Adds non-std. resolution support and ncursesw bug-fixes
Follow-Ups:
Date: Mon 07/28/2003 at 04:18
By: marco_g
Comment:
Changelog entry:
2003-07-18 Marco Gerards <metgerards@student.han.nl>
* console.c (cons_vcons_update): Call setres for every display
driver before the driver is used.
(cons_vcons_set_cursor_pos): Likewise.
(cons_vcons_clear): Likewise.
(cons_vcons_write): Likewise.
* display.h (display_ops): New interface set_resolution.
* vga.c (vga_disp_op): Set NULL for set_resolution.
* ncursesw.c (ncursesw_set_resolution): New function.
(ncursesw_displ): Add ncursesw_set_resolution.
(ncurses_lock): Make variable static.
(current_width): New variable.
(current_height): Likewise.
(conspad): New variable.
(input_loop): Use conspad instead of (the default) stdscr.
(mvwputsn): Likewise.
(ncursesw_update): Likewise.
(ncursesw_set_cursor_pos): Likewise.
(ncursesw_scroll): Likewise.
(ncursesw_write): Likewise.
(ncursesw_driver_start): Likewise. Initialize conspad.
(ncursesw_driver_start): Remove endwin call at the end of the
function.
(ncursesw_set_cursor_status): If the status can not be set, try
another status that can sanely be used instead of the unavailable
status.
(ncursesw_write): Make it wrap around the edge.
-------------------------------------------------------
Date: Thu 08/07/2003 at 00:53
By: marcus
Comment:
Please put the changelog before the patch in the patch file, so I can copy it
from there.
Put a cons_vcons_set_dimension callback into the console, which is called from
libcons refresh function (and possibly if the change records indicate the
dimensions have changed, but that is not supported yet and isn't as easy, just
focus on refresh and one-time initialization for now).
Then get rid of all these calls to the set resolution function.
The drivers also get a set_dimension function. Resolution is the wrong word
here (a resolution is for example pixel per inch, while this is really a
dimension, more text cells will require a larger screen).
Please add keys to scroll the pad around, that allows you to at least play a
bit with larger dimensions than screensize in ncursesw.
Please revert the breaking up of line in write of ncursesw, it shouldn't be
required with pads.
After removing this endwin() you can just as well return 0 instead ERR. 'x'
should release the lock and call console_exit() instead endwin and exit().
-------------------------------------------------------
Date: Thu 08/07/2003 at 00:56
By: marcus
Comment:
Oh, and please imlpement the set_dimes call for the VGA driver as well, and
make it truncate/wrap correctly for different dimensions. We won't be able to
implement a full pad window as easily as in ncursesw, but at least for lower
dimensions it can be used and for larger dimensions it will at least show the
upper left corner properly.
-------------------------------------------------------
Date: Fri 08/08/2003 at 22:05
By: marco_g
Comment:
He is the new patch that implements everything you asked for.
M-w + j,k,l,i can be used to scroll the pad. Because this sucks when doing real
work I've added an "autoscroll" option. It scrolls the pad automaticly,
depending on the cursor position. Autoscroll can be enabled/disabled with "C-w
a".
For the vga driver the changes were a bit more difficult. For example scrolling
is disabled if the vcons is bigger than the physical screen.
cons_vcons_set_dimension also deallocates the scarce resources now so
cons_vcons_clear is not called anymore in cons_vcons_refresh. I did think about
this, this is not a mistake. It is not possible to deallocate the resources
before cons_vcons_set_dimension and deallocating it after the call is also
impossible.
Please notice that this patch is actually two patches + changeslog entries.
Please look at my changelog entry, it seems a bit to big for me, possibly
because I split it up in logical sections. (First part for set_dimensions
related stuff, 2nd part for pad related stuff, the other parts are for
bugfixes, etc.). I appreciate comments. :)
-------------------------------------------------------
-------------------------------------------------------
For more info, visit:
http://savannah.gnu.org/patch/?func=detailpatch&patch_id=1768&group_id=30
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/