summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rio
AgeCommit message (Collapse)Author
2016-07-24make error handling in 9p service loops consistentcinap_lenrek
when we get eof, stop the loop immidiately and do not rely on the read to eventually return an error. when convM2S() fails to decode the message, error out and stop the loop. there is no point in continuing.
2016-06-26rio: move the test if w is allowed to change cursor into wsetcursor()cinap_lenrek
the onscreen cursor shows the cursor of the current focused window or the window it points at. if there is no window, then we set the default cursor (nil).
2016-05-14rio: only the current window may change the cursor, fix typo screen->r vs ↵cinap_lenrek
w->screenr in drag()
2016-05-14rio: second attempt...cinap_lenrek
2016-05-14revert previous commit, not ready yetcinap_lenrek
2016-05-13rio: get rid of all mouse moves, fix cursor handlingcinap_lenrek
2016-04-04rio: /dev/kbd cleanupcinap_lenrek
- use free running unsigned indeces for window kbdq - emalloc() vs malloc() in xfid
2016-04-03change /dev/kbd to return multiple messages per readcinap_lenrek
2016-03-23rio: flushimage() before wscrsleep()cinap_lenrek
2016-03-22rio: add flushimage() after mb2 menu actioncinap_lenrek
2016-03-19rio botchBurnZeZ
2016-03-19rio: fix some spacing, slightly cleaner arg handlingBurnZeZ
2016-03-15rio: flushimage() improves your ability to see, i repeat twice.cinap_lenrek
2016-03-15rio: remove more unneccesary flushimage() callscinap_lenrek
2016-03-08rio, libdraw: experimental removal of redundant flushimage() calls for ↵cinap_lenrek
roundtrip latency reduction - remove redundant flushimage() calls before readmouse() - remove flushimage() calls for allocimage(),freeimage() and originwindow() this is experimental. it will break allocimage() error handling unless the caller does explicit flushimage() calls, tho the gains in usability over high latency connections is huge. in most cases, programs will just terminate when encountering these errors.
2016-02-27rio: exit rio when /dev/cons or /dev/kbd read loop terminatescinap_lenrek
2016-02-13rio: fix wrong frame colors when moving non-current windowcinap_lenrek
When a window is moved or reshaped, that implicitely tops the window and makes it current. The conseqence of this is that we always have to redraw the window as if it where a current window in any case. This was handled for Reshaped windows, but not when the window was just moved. We now handle both cases the exact same way, getting rid of the Moved wctl message.
2015-11-25rio: allow reading the image of a hidden window thru the window filecinap_lenrek
2015-11-25rio: fix handling "resize" wctl for hidden windowscinap_lenrek
when the "resize" wctl was used on a hidden window, the window was put back on the screen, however, it was not removed from the hidden[] array so trying to hide the window again failed because whide() assumed it was already hidden. the fix is to not unhide the window, but preserve the hidden state, so windows can programmatically be reshaped and moved, but will remain hidden unless explicitely unhidden.
2015-11-23rio: stop serving kbdin file (thanks eekee)cinap_lenrek
kbdfs already provides a /dev/kbdin file for the system, rio does not need to provide one for the onscreen keyboard anymore.
2015-10-24rio: fix scrolling when cursor is above windowBurnZeZ
2014-11-07fix dangerous werrstr() usagescinap_lenrek
werrstr() takes a format string as its first argument. a common error is to pass user controlled string buffers into werrstr() that might contain format string escapes causing werrstr() to take bogus arguments from the stack and crash. so instead of doing: werrstr(buf); we want todo: werrstr("%s", buf); or if we have a local ERRMAX sized buffer that we can override: errstr(buf, sizeof buf);
2014-10-25rio: dont serve a kbd file per window when we didnt got one from the environmentcinap_lenrek
9vx doesnt provide a /dev/kbd file and rio faking one up causes problems with vncv. (issue #223)
2014-10-11rio: fix "-cd dir" in mountspec being ignoredBurnZeZ
2014-05-03fix threadsetname usage in few placesftrvxmtrx
2014-01-11rio: properly handle initial wrap arround in wlook()cinap_lenrek
2014-01-11rio: implement "look" (thanks lf94)cinap_lenrek
2014-01-05rio: make scrollwheel handling consistent with samcinap_lenrek
scrollwheel now works proportional to y mouse position. special case is when shift is hold down. then scrollwheel will work like before and scroll one line up or down.
2013-12-19rio: dont consider shell characters as part of the filename for auto completioncinap_lenrek
rio looks backwards in the line for the beginning of a filename that needs to be completed with ^F. this change makes the characters: =, ^, ( and { stoppers, so filename completion will work in all these cases: foobar=/foo/ba^F; for(i in (fo^F ba^F)){/bin/baz^F this means completion will not work for prefixes having these special characters in them. thanks to burnzez for bringing it up.
2013-11-20rio -b: make lighttitlecol darkerstanley lieber
2013-11-05rio: eleminate temporary allocations before frinsert() and in namecomplete()cinap_lenrek
frinsert() shouldnt modify the runes passed and the buffer isnt going to be modified my us during the call so removing the temporary copies. namecomplete() makes utf-8 copies of the rune strings so theres no need to copy the runes.
2013-11-03rio: do backspace \b processing inplace avoiding buffer allocationcinap_lenrek
2013-11-03rio: cleanup and error handlingcinap_lenrek
2013-11-02rio: huge simplification of flush handlingcinap_lenrek
xfidflush() now uses a simpler way to flush another xfid. when we can send to Xfid.c channel, we know that the xfid is completed. so all xfidflush() needs todo is to do an alt sending to both Xfid.c and Xfid.flushc. once the send to Xfid.c succeeds, we know the xfid is gone and we can respond to the flush request. theres no need to keep track of flush state anymore. so Xfid.active and Xfid.flushing can be removed. note, that it is ok to respond normally to a currently flushed request.
2013-11-01rio: add sanity check in xfidallocthread()cinap_lenrek
2013-11-01rio: enforce flush reply ordering for all xfidscinap_lenrek
flushing isnt optional for concurrently handled requests. we need to ensure that Rflush is replied *after* the origianl request. so we assign the flushtag for *every* xfid in xfidctl(), and filsysrespond() checks if the xfid was flushed *after* replying and wakes up the flushing xfid.
2013-11-01rio: properly handle follow up flushes (fixes unexpected reply tag)cinap_lenrek
when multiple flushes are send, they need to be replied in order. we ensure this by having the flush xfid taking over the flushtag (synchronized with a new fs->csyncflush channel) so the next flush will flush the previous flush.
2013-10-05rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but ↵cinap_lenrek
request flushing)
2013-10-04rio: gone windows, window resize, rectonscreen, goodrectcinap_lenrek
dont rely on postnote to shutdown client. instead, make reads on cons, kbd and mouse error. when we mount a window system over exportfs, the pid useless and even dangerous! pid should be only used by clients forked by rio itself. fix bug in resized(), goodrect() takes rect in screen coordinates! make rectonscreen() fix window size if the window doesnt fit on the screen. improve goodrect() to check for windows outside of the screen or bigger than screen without borders visible.
2013-09-17rio: translate window when scaling results in bad window rect on screen resizecinap_lenrek
when the screen is resized, we scale the windows to match the new screen size. when the screen is too small tho, the scaled down window rect might result in a bad window rect. before, we kept the window in its original position and size making it possible to move a window out of the screen by resizing its outer rio. now, if we get a bad rectangle after scaling, we just tralslate position to the new scaled r.min point but preserve its orginal size. this keeps the window always accessible.
2013-09-16rio: fix Xfidwrite memory leak on flushcinap_lenrek
2013-08-20rio: position keyboard window (-k) at the bottom of the screencinap_lenrek
2013-08-10rio: fix unused variable warning in wscroll()cinap_lenrek
2013-08-10rio: shorten overlong window labelscinap_lenrek
2013-08-05rio: make sure flush replies are send only *after* the request got flushed ↵cinap_lenrek
or was replied due to the xfid handlers clearing flushtag too early, xfidflush might respond too early causing spurious replies send later by the handler. now, we clear the flushtag in filsysrespond *after* the reply was send. xfidflush will wait for us on the active qlock.
2013-08-05unsticky scrollbarscinap_lenrek
scrollbars used to put the mouse on the scrollbar while scrolling. if latency is high, this often results to the cursor jumping back. instead, make button 2 srolling work without needing the mouse to be inside the scrollbar and leave the mouse position alone.
2013-08-04rio: add ^B control sequence to move cursor to output pointcinap_lenrek
2013-06-29rio: run filename completion in background processcinap_lenrek
this avoids locking up rio when doing filename completion on a unresponsive directory.
2013-06-16make filesystem handling of read9pmsg() consistentcinap_lenrek
2013-05-13rio: place text at beginning of line before cursor and host pointcinap_lenrek