Subversion Repositories HelenOS

Rev

Rev 1560 | Rev 1567 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1560 Rev 1563
Line 253... Line 253...
253
   
253
   
254
    active_console = newcons;
254
    active_console = newcons;
255
    gcons_change_console(newcons);
255
    gcons_change_console(newcons);
256
    conn = &connections[active_console];
256
    conn = &connections[active_console];
257
 
257
 
258
    curs_visibility(0);
258
    set_style(&conn->screenbuffer.style);
-
 
259
    curs_goto(conn->screenbuffer.position_y, conn->screenbuffer.position_x);
259
    if (interbuffer) {
260
    if (interbuffer) {
260
        for (i = 0; i < conn->screenbuffer.size_x; i++)
261
        for (i = 0; i < conn->screenbuffer.size_x; i++)
261
            for (j = 0; j < conn->screenbuffer.size_y; j++)
262
            for (j = 0; j < conn->screenbuffer.size_y; j++)
262
                interbuffer[i + j*conn->screenbuffer.size_x] = *get_field_at(&(conn->screenbuffer),i, j);
263
                interbuffer[i + j*conn->screenbuffer.size_x] = *get_field_at(&(conn->screenbuffer),i, j);
263
       
-
 
-
 
264
        /* This call can preempt, but we are already at the end */
264
        sync_send_2(fb_info.phone, FB_DRAW_TEXT_DATA, 0, 0, NULL, NULL);       
265
        sync_send_2(fb_info.phone, FB_DRAW_TEXT_DATA, 0, 0, NULL, NULL);       
265
    } else {
266
    } else {
-
 
267
        curs_visibility(0);
266
        clrscr();
268
        clrscr();
267
       
269
       
268
        for (i = 0; i < conn->screenbuffer.size_x; i++)
270
        for (i = 0; i < conn->screenbuffer.size_x; i++)
269
            for (j = 0; j < conn->screenbuffer.size_y; j++) {
271
            for (j = 0; j < conn->screenbuffer.size_y; j++) {
270
                c = get_field_at(&(conn->screenbuffer),i, j)->character;
272
                c = get_field_at(&(conn->screenbuffer),i, j)->character;
271
                if (c && c != ' ')
273
                if (c && c != ' ')
272
                    prtchr(c, j, i);
274
                    prtchr(c, j, i);
273
            }
275
            }
274
       
276
       
-
 
277
        curs_visibility(1);
275
    }
278
    }
276
    curs_goto(conn->screenbuffer.position_y, conn->screenbuffer.position_x);
-
 
277
    set_style(&conn->screenbuffer.style);
-
 
278
    curs_visibility(1);
-
 
279
}
279
}
280
 
280
 
281
/** Handler for keyboard */
281
/** Handler for keyboard */
282
static void keyboard_events(ipc_callid_t iid, ipc_call_t *icall)
282
static void keyboard_events(ipc_callid_t iid, ipc_call_t *icall)
283
{
283
{
Line 373... Line 373...
373
           
373
           
374
            break;
374
            break;
375
        case CONSOLE_GOTO:
375
        case CONSOLE_GOTO:
376
           
376
           
377
            screenbuffer_goto(&(connections[consnum].screenbuffer), IPC_GET_ARG2(call), IPC_GET_ARG1(call));
377
            screenbuffer_goto(&(connections[consnum].screenbuffer), IPC_GET_ARG2(call), IPC_GET_ARG1(call));
-
 
378
            curs_goto(IPC_GET_ARG1(call),IPC_GET_ARG2(call));
378
           
379
           
379
            break;
380
            break;
380
 
381
 
381
        case CONSOLE_GETSIZE:
382
        case CONSOLE_GETSIZE:
382
            arg1 = fb_info.rows;
383
            arg1 = fb_info.rows;