~ubuntu-branches/ubuntu/precise/xterm/precise-updates

« back to all changes in this revision

Viewing changes to Tekproc.c

  • Committer: Bazaar Package Importer
  • Author(s): Muharem Hrnjadovic
  • Date: 2009-06-03 13:00:55 UTC
  • mfrom: (1.1.15 upstream) (11.1.8 sid)
  • Revision ID: james.westby@ubuntu.com-20090603130055-1cs2n0skvpk00pw2
Tags: 243-1ubuntu1
* Merge from debian unstable, remaining changes:
  - Enabled URL highlighting
  - rm -rf for .pc patches

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $XTermId: Tekproc.c,v 1.163 2009/02/13 20:01:21 tom Exp $ */
 
1
/* $XTermId: Tekproc.c,v 1.167 2009/03/28 17:03:35 tom Exp $ */
2
2
 
3
3
/*
4
4
 * Warning, there be crufty dragons here.
897
897
static void
898
898
TekConfigure(Widget w)
899
899
{
900
 
    if (IsTekWidget(w)) {
901
 
        TekWidget tw = (TekWidget) w;
 
900
    TekWidget tw = getTekWidget(w);
 
901
    if (tw != 0) {
902
902
        TekScreen *tekscr = TekScreenOf(tw);
903
903
        TScreen *screen = TScreenOf(term);
904
904
        int border = 2 * screen->border;
922
922
          XEvent * event GCC_UNUSED,
923
923
          Region region GCC_UNUSED)
924
924
{
925
 
    if (IsTekWidget(w)) {
926
 
        TekWidget tw = (TekWidget) w;
 
925
    TekWidget tw = getTekWidget(w);
 
926
    if (tw != 0) {
927
927
        TekScreen *tekscr = TekScreenOf(tw);
928
928
 
929
 
        TRACE(("TekExpose\n"));
 
929
        TRACE(("TekExpose {{\n"));
930
930
 
931
931
#ifdef lint
932
932
        region = region;
937
937
        Tpushback = Tpushb;
938
938
        tekscr->cur_X = 0;
939
939
        tekscr->cur_Y = TEKHOME;
940
 
        TekSetFontSize(tw, tekscr->page.fontsize);
941
940
        tekscr->cur = tekscr->page;
 
941
        TekSetFontSize(tw, tekscr->cur.fontsize);
942
942
        tekscr->margin = MARGIN1;
943
943
        if (tekscr->TekGIN) {
944
944
            tekscr->TekGIN = NULL;
952
952
        first_map_occurred();
953
953
        if (!tekscr->waitrefresh)
954
954
            TekRefresh(tw);
 
955
        TRACE(("}} TekExpose\n"));
955
956
    }
956
957
}
957
958
 
979
980
void
980
981
TekRepaint(TekWidget tw)
981
982
{
 
983
    TRACE(("TekRepaint\n"));
982
984
    TekClear(tw);
983
985
    TekExpose((Widget) tw, (XEvent *) NULL, (Region) NULL);
984
986
}
1655
1657
        int newsize = MI2FS(newitem);
1656
1658
        Font fid;
1657
1659
 
1658
 
        TRACE(("TekSetFontSize(%d)\n", newitem));
 
1660
        TRACE(("TekSetFontSize(%d) size %d ->%d\n", newitem, oldsize, newsize));
1659
1661
        if (newsize < 0 || newsize >= TEKNUMFONTS) {
1660
1662
            Bell(XkbBI_MinorError, 0);
1661
1663
        } else if (oldsize != newsize) {
1663
1665
                TCursorToggle(tw, TOGGLE);
1664
1666
            set_tekfont_menu_item(oldsize, False);
1665
1667
 
 
1668
            tekscr->cur.fontsize = newsize;
 
1669
            tekscr->page.fontsize = newsize;
 
1670
 
1666
1671
            fid = tw->tek.Tfont[newsize]->fid;
1667
1672
            if (fid == DefaultGCID) {
1668
1673
                /* we didn't succeed in opening a real font
1674
1679
                XSetFont(XtDisplay(tw), tekscr->TnormalGC, fid);
1675
1680
            }
1676
1681
 
1677
 
            tekscr->cur.fontsize = newsize;
1678
1682
            set_tekfont_menu_item(newsize, True);
1679
1683
            if (!Ttoggled)
1680
1684
                TCursorToggle(tw, TOGGLE);
 
1685
 
 
1686
            /* we'll get an exposure event after changing fontsize, so we
 
1687
             * have to clear the screen to avoid painting over the previous
 
1688
             * text.
 
1689
             */
 
1690
            TekClear(tw);
1681
1691
        }
1682
1692
    }
1683
1693
}
1794
1804
    if (!TEK4014_SHOWN(term))
1795
1805
        return;
1796
1806
 
 
1807
    TRACE(("TCursorToggle %s\n", (toggle == TOGGLE) ? "toggle" : "clear"));
1797
1808
    c = tekscr->cur.fontsize;
1798
1809
    cellwidth = (unsigned) tw->tek.Tfont[c]->max_bounds.width;
1799
1810
    cellheight = (unsigned) (tw->tek.Tfont[c]->ascent +
1891
1902
               String * param_list,
1892
1903
               Cardinal *nparamsp)
1893
1904
{
1894
 
    if (IsTekWidget(w)) {
1895
 
        TekWidget tw = (TekWidget) w;
 
1905
    TekWidget tw = getTekWidget(w);
 
1906
    if (tw != 0) {
1896
1907
        TekScreen *tekscr = TekScreenOf(tw);
1897
1908
 
1898
1909
        if (tekscr->TekGIN && *nparamsp == 1) {
1916
1927
        }
1917
1928
    }
1918
1929
}
 
1930
 
 
1931
/*
 
1932
 * Check if the current widget, or any parent, is the VT100 "xterm" widget.
 
1933
 */
 
1934
TekWidget
 
1935
getTekWidget(Widget w)
 
1936
{
 
1937
    TekWidget xw;
 
1938
 
 
1939
    if (w == 0) {
 
1940
        xw = (TekWidget) CURRENT_EMU();
 
1941
        if (!IsTekWidget(xw)) {
 
1942
            xw = 0;
 
1943
        }
 
1944
    } else if (IsTekWidget(w)) {
 
1945
        xw = (TekWidget) w;
 
1946
    } else {
 
1947
        xw = getTekWidget(XtParent(w));
 
1948
    }
 
1949
    TRACE2(("getTekWidget %p -> %p\n", w, xw));
 
1950
    return xw;
 
1951
}